home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1996-03-29 | 24.5 KB | [oODC/obnF] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Wed Apr 11 22:57:34 1990, modified Fri Mar 29 12:21:13 1996, creator 'obnF', type 'oODC', 24508 bytes "Controllers" , at 0x603c 318 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
100%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [oODC] |
macFileCreator | [obnF] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 43 6f 6e 74 72 6f | 6c 6c 65 72 73 00 00 00 |..Contro|llers...|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 6f 4f 44 43 6f 62 6e | 46 01 00 00 00 00 00 00 |.oODCobn|F.......|
|00000050| 00 00 00 00 00 5f bc 00 | 00 01 3e a2 49 9f 1e ad |....._..|..>.I...|
|00000060| 81 cc 89 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 74 e3 00 00 |........|....t...|
|00000080| 43 44 4f 6f 00 00 00 00 | 82 f1 44 6f 63 75 6d 65 |CDOo....|..Docume|
|00000090| 6e 74 73 2e 53 74 64 44 | 6f 63 75 6d 65 6e 74 44 |nts.StdD|ocumentD|
|000000a0| 65 73 63 00 f1 44 6f 63 | 75 6d 65 6e 74 73 2e 44 |esc..Doc|uments.D|
|000000b0| 6f 63 75 6d 65 6e 74 44 | 65 73 63 00 f1 43 6f 6e |ocumentD|esc..Con|
|000000c0| 74 61 69 6e 65 72 73 2e | 56 69 65 77 44 65 73 63 |tainers.|ViewDesc|
|000000d0| 00 f1 56 69 65 77 73 2e | 56 69 65 77 44 65 73 63 |..Views.|ViewDesc|
|000000e0| 00 f0 53 74 6f 72 65 73 | 2e 53 74 6f 72 65 44 65 |..Stores|.StoreDe|
|000000f0| 73 63 00 00 00 00 00 00 | 00 00 00 07 00 00 00 39 |sc......|.......9|
|00000100| 5f 00 00 00 00 00 83 f1 | 44 6f 63 75 6d 65 6e 74 |_.......|Document|
|00000110| 73 2e 4d 6f 64 65 6c 44 | 65 73 63 00 f1 43 6f 6e |s.ModelD|esc..Con|
|00000120| 74 61 69 6e 65 72 73 2e | 4d 6f 64 65 6c 44 65 73 |tainers.|ModelDes|
|00000130| 63 00 f1 4d 6f 64 65 6c | 73 2e 4d 6f 64 65 6c 44 |c..Model|s.ModelD|
|00000140| 65 73 63 00 f1 53 74 6f | 72 65 73 2e 45 6c 65 6d |esc..Sto|res.Elem|
|00000150| 44 65 73 63 00 f2 04 00 | 00 00 00 00 00 00 87 5e |Desc....|.......^|
|00000160| 00 00 09 00 00 00 7f 5e | 00 00 00 00 00 00 00 82 |.......^|........|
|00000170| f1 54 65 78 74 56 69 65 | 77 73 2e 53 74 64 56 69 |.TextVie|ws.StdVi|
|00000180| 65 77 44 65 73 63 00 f1 | 54 65 78 74 56 69 65 77 |ewDesc..|TextView|
|00000190| 73 2e 56 69 65 77 44 65 | 73 63 00 f2 02 00 00 00 |s.ViewDe|sc......|
|000001a0| 00 00 00 00 00 00 00 00 | 07 00 00 00 29 5e 00 00 |........|....)^..|
|000001b0| 00 00 00 83 f1 54 65 78 | 74 4d 6f 64 65 6c 73 2e |.....Tex|tModels.|
|000001c0| 53 74 64 4d 6f 64 65 6c | 44 65 73 63 00 f1 54 65 |StdModel|Desc..Te|
|000001d0| 78 74 4d 6f 64 65 6c 73 | 2e 4d 6f 64 65 6c 44 65 |xtModels|.ModelDe|
|000001e0| 73 63 00 f2 06 00 00 00 | 00 00 00 00 2b 5c 00 00 |sc......|....+\..|
|000001f0| 0f 00 00 00 23 5c 00 00 | 00 00 00 00 00 00 bd 04 |....#\..|........|
|00000200| 00 00 00 82 f1 54 65 78 | 74 4d 6f 64 65 6c 73 2e |.....Tex|tModels.|
|00000210| 41 74 74 72 69 62 75 74 | 65 73 44 65 73 63 00 f2 |Attribut|esDesc..|
|00000220| 04 00 00 00 00 00 00 00 | 2c 00 00 00 00 00 00 00 |........|,.......|
|00000230| 1f 00 00 00 00 00 00 00 | 00 01 00 00 00 00 47 65 |........|......Ge|
|00000240| 6e 65 76 61 00 7c be 01 | 00 00 00 00 00 90 01 00 |neva.|..|........|
|00000250| 00 00 00 18 00 00 00 01 | 82 f2 0d 00 00 00 00 00 |........|........|
|00000260| 00 00 31 00 00 00 00 00 | 00 00 1f 00 00 00 00 00 |..1.....|........|
|00000270| 00 00 00 01 00 00 00 00 | 47 65 6e 65 76 61 00 7c |........|Geneva.||
|00000280| be 01 00 01 00 00 00 90 | 01 00 00 00 00 0d 00 00 |........|........|
|00000290| 00 00 83 00 00 00 02 82 | f2 0d 00 00 00 00 00 00 |........|........|
|000002a0| 00 b7 01 00 00 00 00 00 | 00 1f 00 00 00 00 00 00 |........|........|
|000002b0| 00 00 01 00 00 00 00 47 | 65 6e 65 76 61 00 7c be |.......G|eneva.|.|
|000002c0| 01 00 00 00 00 00 bc 02 | 00 00 00 00 0b 00 00 00 |........|........|
|000002d0| 00 1c 00 00 00 02 07 00 | 00 00 00 a5 00 00 00 01 |........|........|
|000002e0| 2b 00 00 00 00 43 00 00 | 00 02 0a 00 00 00 00 21 |+....C..|.......!|
|000002f0| 00 00 00 02 0e 00 00 00 | 00 66 00 00 00 02 09 00 |........|.f......|
|00000300| 00 00 00 20 00 00 00 02 | 0d 00 00 00 00 2e 00 00 |... ....|........|
|00000310| 00 02 04 00 00 00 00 1b | 00 00 00 02 08 00 00 00 |........|........|
|00000320| 00 a5 00 00 00 01 2a 00 | 00 00 00 f1 00 00 00 02 |......*.|........|
|00000330| 03 00 00 00 00 03 00 00 | 00 02 06 00 00 00 00 11 |........|........|
|00000340| 00 00 00 01 12 00 00 00 | 00 1d 00 00 00 02 0b 00 |........|........|
|00000350| 00 00 00 71 00 00 00 02 | 06 00 00 00 00 6e 00 00 |...q....|.....n..|
|00000360| 00 02 0b 00 00 00 00 88 | 00 00 00 02 08 00 00 00 |........|........|
|00000370| 00 1f 01 00 00 02 08 00 | 00 00 00 1f 00 00 00 02 |........|........|
|00000380| 06 00 00 00 00 33 00 00 | 00 02 06 00 00 00 00 1f |.....3..|........|
|00000390| 00 00 00 02 04 00 00 00 | 00 2f 00 00 00 02 08 00 |........|./......|
|000003a0| 00 00 00 1f 00 00 00 02 | 04 00 00 00 00 31 00 00 |........|.....1..|
|000003b0| 00 02 0a 00 00 00 00 28 | 00 00 00 02 04 00 00 00 |.......(|........|
|000003c0| 00 33 00 00 00 02 0c 00 | 00 00 00 15 00 00 00 02 |.3......|........|
|000003d0| 04 00 00 00 00 35 00 00 | 00 02 0c 00 00 00 00 16 |.....5..|........|
|000003e0| 00 00 00 02 04 00 00 00 | 00 1c 00 00 00 01 11 00 |........|........|
|000003f0| 00 00 00 1c 00 00 00 02 | 07 00 00 00 00 3d 00 00 |........|.....=..|
|00000400| 00 02 04 00 00 00 00 17 | 00 00 00 01 1a 00 00 00 |........|........|
|00000410| 00 19 02 00 00 01 13 00 | 00 00 00 96 00 00 00 02 |........|........|
|00000420| 06 00 00 00 00 ce 03 00 | 00 01 14 00 00 00 00 d6 |........|........|
|00000430| 01 00 00 02 06 00 00 00 | 00 97 00 00 00 02 06 00 |........|........|
|00000440| 00 00 00 a1 00 00 00 02 | 06 00 00 00 00 e0 01 00 |........|........|
|00000450| 00 01 18 00 00 00 00 2c | 01 00 00 03 82 f2 0d 00 |.......,|........|
|00000460| 00 00 00 00 00 00 2c 00 | 00 00 00 00 00 00 1f 00 |......,.|........|
|00000470| 00 00 00 00 00 80 00 00 | 00 00 00 00 47 65 6e 65 |........|....Gene|
|00000480| 76 61 00 7c be 01 00 00 | 00 00 00 90 01 00 00 00 |va.|....|........|
|00000490| 00 1e 00 00 00 04 82 f2 | 0d 00 00 00 00 00 00 00 |........|........|
|000004a0| 00 00 00 00 00 00 00 00 | 1f 00 00 00 00 00 00 80 |........|........|
|000004b0| 00 00 00 00 00 00 47 65 | 6e 65 76 61 00 7c be 01 |......Ge|neva.|..|
|000004c0| 00 00 00 00 00 bc 02 00 | 00 00 00 12 00 00 00 03 |........|........|
|000004d0| 43 03 00 00 04 15 00 00 | 00 03 01 00 00 00 00 68 |C.......|.......h|
|000004e0| 00 00 00 03 0c 00 00 00 | 00 1e 00 00 00 03 17 00 |........|........|
|000004f0| 00 00 00 13 00 00 00 03 | 08 00 00 00 00 9b 00 00 |........|........|
|00000500| 00 01 0e 00 00 00 00 06 | 00 00 00 03 1a 00 00 00 |........|........|
|00000510| 00 f4 01 00 00 03 44 02 | 00 00 00 4f 05 00 00 01 |......D.|...O....|
|00000520| 48 00 00 00 00 60 00 00 | 00 01 18 00 00 00 00 a6 |H....`..|........|
|00000530| 0b 00 00 02 06 00 00 00 | 00 d6 02 00 00 01 3a 00 |........|......:.|
|00000540| 00 00 00 b0 00 00 00 01 | 14 00 00 00 00 0f 06 00 |........|........|
|00000550| 00 03 06 00 00 00 00 1a | 00 00 00 03 11 00 00 00 |........|........|
|00000560| 00 82 00 00 00 03 2b 00 | 00 00 00 08 00 00 00 01 |......+.|........|
|00000570| 18 00 00 00 00 01 00 00 | 00 01 02 00 00 00 03 19 |........|........|
|00000580| 00 00 00 01 02 00 00 00 | 03 cb 01 00 00 00 03 00 |........|........|
|00000590| 00 00 03 df 00 00 00 00 | 01 00 00 00 03 06 00 00 |........|........|
|000005a0| 00 00 0e 00 00 00 01 0f | 00 00 00 00 43 00 00 00 |........|....C...|
|000005b0| 02 06 00 00 00 00 60 00 | 00 00 02 06 00 00 00 00 |......`.|........|
|000005c0| 61 04 00 00 01 0f 00 00 | 00 00 3e 01 00 00 02 06 |a.......|..>.....|
|000005d0| 00 00 00 00 20 00 00 00 | 02 06 00 00 00 00 8a 00 |.... ...|........|
|000005e0| 00 00 01 0a 00 00 00 00 | 8a 00 00 00 01 0b 00 00 |........|........|
|000005f0| 00 00 3f 00 00 00 02 06 | 00 00 00 00 72 00 00 00 |..?.....|....r...|
|00000600| 01 1d 00 00 00 00 39 01 | 00 00 01 1e 00 00 00 00 |......9.|........|
|00000610| a9 02 00 00 01 34 00 00 | 00 00 27 00 00 00 01 0f |.....4..|..'.....|
|00000620| 00 00 00 00 e1 00 00 00 | 01 0f 00 00 00 00 a0 01 |........|........|
|00000630| 00 00 02 06 00 00 00 00 | d9 00 00 00 02 06 00 00 |........|........|
|00000640| 00 00 aa 00 00 00 01 0a | 00 00 00 00 a9 00 00 00 |........|........|
|00000650| 01 12 00 00 00 00 80 00 | 00 00 02 06 00 00 00 00 |........|........|
|00000660| 34 01 00 00 02 06 00 00 | 00 00 14 00 00 00 01 15 |4.......|........|
|00000670| 00 00 00 00 0d 00 00 00 | 02 05 00 00 00 00 ee 00 |........|........|
|00000680| 00 00 02 06 00 00 00 00 | 17 00 00 00 02 06 00 00 |........|........|
|00000690| 00 00 13 00 00 00 02 06 | 00 00 00 00 23 00 00 00 |........|....#...|
|000006a0| 02 06 00 00 00 00 da 00 | 00 00 02 06 00 00 00 00 |........|........|
|000006b0| 52 00 00 00 02 07 00 00 | 00 00 b2 00 00 00 ff 4d |R.......|.......M|
|000006c0| 4f 44 55 4c 45 20 46 6f | 72 6d 43 6f 6e 74 72 6f |ODULE Fo|rmContro|
|000006d0| 6c 6c 65 72 73 3b 0d 28 | 2a 20 4f 6d 49 6e 63 20 |llers;.(|* OmInc |
|000006e0| 02 20 2a 29 0d 0d 09 49 | 4d 50 4f 52 54 0d 09 09 |. *)...I|MPORT...|
|000006f0| 44 6f 6d 61 69 6e 73 2c | 20 50 6f 72 74 73 2c 20 |Domains,| Ports, |
|00000700| 53 74 6f 72 65 73 2c 20 | 4d 6f 64 65 6c 73 2c 20 |Stores, |Models, |
|00000710| 56 69 65 77 73 2c 20 43 | 6f 6e 74 72 6f 6c 6c 65 |Views, C|ontrolle|
|00000720| 72 73 2c 20 50 72 6f 70 | 65 72 74 69 65 73 2c 20 |rs, Prop|erties, |
|00000730| 44 69 61 6c 6f 67 2c 20 | 43 6f 6e 74 61 69 6e 65 |Dialog, |Containe|
|00000740| 72 73 2c 0d 09 09 46 6f | 72 6d 4d 6f 64 65 6c 73 |rs,...Fo|rmModels|
|00000750| 2c 20 46 6f 72 6d 56 69 | 65 77 73 3b 0d 0d 09 43 |, FormVi|ews;...C|
|00000760| 4f 4e 53 54 0d 09 09 6e | 6f 53 65 6c 65 63 74 69 |ONST...n|oSelecti|
|00000770| 6f 6e 2a 20 3d 20 43 6f | 6e 74 61 69 6e 65 72 73 |on* = Co|ntainers|
|00000780| 2e 6e 6f 53 65 6c 65 63 | 74 69 6f 6e 3b 20 6e 6f |.noSelec|tion; no|
|00000790| 46 6f 63 75 73 2a 20 3d | 20 43 6f 6e 74 61 69 6e |Focus* =| Contain|
|000007a0| 65 72 73 2e 6e 6f 46 6f | 63 75 73 3b 0d 09 09 74 |ers.noFo|cus;...t|
|000007b0| 61 62 20 3d 20 30 39 58 | 3b 20 6c 74 61 62 20 3d |ab = 09X|; ltab =|
|000007c0| 20 30 41 58 3b 20 72 64 | 65 6c 20 3d 20 37 58 3b | 0AX; rd|el = 7X;|
|000007d0| 20 6c 64 65 6c 20 3d 20 | 38 58 3b 20 6c 69 6e 65 | ldel = |8X; line|
|000007e0| 20 3d 20 30 44 58 3b 20 | 65 73 63 20 3d 20 31 42 | = 0DX; |esc = 1B|
|000007f0| 58 3b 0d 09 09 61 72 72 | 6f 77 4c 65 66 74 20 3d |X;...arr|owLeft =|
|00000800| 20 31 43 58 3b 20 61 72 | 72 6f 77 52 69 67 68 74 | 1CX; ar|rowRight|
|00000810| 20 3d 20 31 44 58 3b 20 | 61 72 72 6f 77 55 70 20 | = 1DX; |arrowUp |
|00000820| 3d 20 31 45 58 3b 20 61 | 72 72 6f 77 44 6f 77 6e |= 1EX; a|rrowDown|
|00000830| 20 3d 20 31 46 58 3b 0d | 09 09 28 2a 20 72 61 6e | = 1FX;.|..(* ran|
|00000840| 67 65 20 6f 66 20 63 75 | 72 72 65 6e 74 6c 79 20 |ge of cu|rrently |
|00000850| 73 75 70 70 6f 72 74 65 | 64 20 76 65 72 73 69 6f |supporte|d versio|
|00000860| 6e 73 20 2a 29 0d 09 09 | 6d 69 6e 56 65 72 73 69 |ns *)...|minVersi|
|00000870| 6f 6e 20 3d 20 30 3b 20 | 6d 61 78 42 61 73 65 56 |on = 0; |maxBaseV|
|00000880| 65 72 73 69 6f 6e 20 3d | 20 30 3b 20 6d 61 78 53 |ersion =| 0; maxS|
|00000890| 74 64 56 65 72 73 69 6f | 6e 20 3d 20 30 3b 0d 0d |tdVersio|n = 0;..|
|000008a0| 09 54 59 50 45 0d 09 09 | 43 6f 6e 74 72 6f 6c 6c |.TYPE...|Controll|
|000008b0| 65 72 2a 20 3d 20 50 4f | 49 4e 54 45 52 20 54 4f |er* = PO|INTER TO|
|000008c0| 20 43 6f 6e 74 72 6f 6c | 6c 65 72 44 65 73 63 3b | Control|lerDesc;|
|000008d0| 0d 09 09 43 6f 6e 74 72 | 6f 6c 6c 65 72 44 65 73 |...Contr|ollerDes|
|000008e0| 63 2a 20 3d 20 52 45 43 | 4f 52 44 20 28 43 6f 6e |c* = REC|ORD (Con|
|000008f0| 74 61 69 6e 65 72 73 2e | 43 6f 6e 74 72 6f 6c 6c |tainers.|Controll|
|00000900| 65 72 44 65 73 63 29 0d | 09 09 09 66 6f 72 6d 2d |erDesc).|...form-|
|00000910| 3a 20 46 6f 72 6d 4d 6f | 64 65 6c 73 2e 4d 6f 64 |: FormMo|dels.Mod|
|00000920| 65 6c 3b 0d 09 09 09 76 | 69 65 77 2d 3a 20 46 6f |el;....v|iew-: Fo|
|00000930| 72 6d 56 69 65 77 73 2e | 56 69 65 77 0d 09 09 45 |rmViews.|View...E|
|00000940| 4e 44 3b 0d 0d 09 09 44 | 69 72 65 63 74 6f 72 79 |ND;....D|irectory|
|00000950| 2a 20 3d 20 50 4f 49 4e | 54 45 52 20 54 4f 20 44 |* = POIN|TER TO D|
|00000960| 69 72 65 63 74 6f 72 79 | 44 65 73 63 3b 0d 09 09 |irectory|Desc;...|
|00000970| 44 69 72 65 63 74 6f 72 | 79 44 65 73 63 2a 20 3d |Director|yDesc* =|
|00000980| 20 52 45 43 4f 52 44 20 | 28 43 6f 6e 74 61 69 6e | RECORD |(Contain|
|00000990| 65 72 73 2e 44 69 72 65 | 63 74 6f 72 79 44 65 73 |ers.Dire|ctoryDes|
|000009a0| 63 29 20 45 4e 44 3b 0d | 0d 09 09 4c 69 73 74 2a |c) END;.|...List*|
|000009b0| 20 3d 20 50 4f 49 4e 54 | 45 52 20 54 4f 20 4c 69 | = POINT|ER TO Li|
|000009c0| 73 74 44 65 73 63 3b 0d | 09 09 4c 69 73 74 44 65 |stDesc;.|..ListDe|
|000009d0| 73 63 2a 20 3d 20 52 45 | 43 4f 52 44 0d 09 09 09 |sc* = RE|CORD....|
|000009e0| 6e 65 78 74 2a 3a 20 4c | 69 73 74 3b 0d 09 09 09 |next*: L|ist;....|
|000009f0| 76 69 65 77 2a 3a 20 56 | 69 65 77 73 2e 56 69 65 |view*: V|iews.Vie|
|00000a00| 77 0d 09 09 45 4e 44 3b | 0d 0d 0d 09 09 53 74 64 |w...END;|.....Std|
|00000a10| 43 6f 6e 74 72 6f 6c 6c | 65 72 20 3d 20 50 4f 49 |Controll|er = POI|
|00000a20| 4e 54 45 52 20 54 4f 20 | 53 74 64 43 6f 6e 74 72 |NTER TO |StdContr|
|00000a30| 6f 6c 6c 65 72 44 65 73 | 63 3b 0d 09 09 53 74 64 |ollerDes|c;...Std|
|00000a40| 43 6f 6e 74 72 6f 6c 6c | 65 72 44 65 73 63 20 3d |Controll|erDesc =|
|00000a50| 20 52 45 43 4f 52 44 20 | 28 43 6f 6e 74 72 6f 6c | RECORD |(Control|
|00000a60| 6c 65 72 44 65 73 63 29 | 0d 09 09 09 73 65 6c 3a |lerDesc)|....sel:|
|00000a70| 20 4c 69 73 74 3b 09 28 | 2a 20 28 73 65 6c 20 3d | List;.(|* (sel =|
|00000a80| 20 4e 49 4c 29 20 4f 52 | 20 28 63 2e 54 68 69 73 | NIL) OR| (c.This|
|00000a90| 46 6f 63 75 73 28 29 20 | 3d 20 4e 49 4c 29 20 2a |Focus() |= NIL) *|
|00000aa0| 29 0d 09 09 09 72 65 61 | 64 65 72 3a 20 46 6f 72 |)....rea|der: For|
|00000ab0| 6d 4d 6f 64 65 6c 73 2e | 52 65 61 64 65 72 3b 0d |mModels.|Reader;.|
|00000ac0| 09 09 09 6c 61 73 74 58 | 2c 20 6c 61 73 74 59 3a |...lastX|, lastY:|
|00000ad0| 20 4c 4f 4e 47 49 4e 54 | 0d 09 09 45 4e 44 3b 0d | LONGINT|...END;.|
|00000ae0| 0d 09 09 53 74 64 44 69 | 72 65 63 74 6f 72 79 20 |...StdDi|rectory |
|00000af0| 3d 20 50 4f 49 4e 54 45 | 52 20 54 4f 20 53 74 64 |= POINTE|R TO Std|
|00000b00| 44 69 72 65 63 74 6f 72 | 79 44 65 73 63 3b 0d 09 |Director|yDesc;..|
|00000b10| 09 53 74 64 44 69 72 65 | 63 74 6f 72 79 44 65 73 |.StdDire|ctoryDes|
|00000b20| 63 20 3d 20 52 45 43 4f | 52 44 20 28 44 69 72 65 |c = RECO|RD (Dire|
|00000b30| 63 74 6f 72 79 44 65 73 | 63 29 20 45 4e 44 3b 0d |ctoryDes|c) END;.|
|00000b40| 0d 09 09 4d 61 72 6b 4d | 73 67 20 3d 20 52 45 43 |...MarkM|sg = REC|
|00000b50| 4f 52 44 20 28 56 69 65 | 77 73 2e 4d 65 73 73 61 |ORD (Vie|ws.Messa|
|00000b60| 67 65 29 0d 09 09 09 6c | 69 73 74 3a 20 4c 69 73 |ge)....l|ist: Lis|
|00000b70| 74 3b 0d 09 09 09 73 68 | 6f 77 3a 20 42 4f 4f 4c |t;....sh|ow: BOOL|
|00000b80| 45 41 4e 0d 09 09 45 4e | 44 3b 0d 0d 0d 09 56 41 |EAN...EN|D;....VA|
|00000b90| 52 20 64 69 72 2d 2c 20 | 73 74 64 44 69 72 2d 3a |R dir-, |stdDir-:|
|00000ba0| 20 44 69 72 65 63 74 6f | 72 79 3b 0d 0d 0d 09 28 | Directo|ry;....(|
|00000bb0| 2a 2a 20 43 6f 6e 74 72 | 6f 6c 6c 65 72 20 2a 2a |** Contr|oller **|
|00000bc0| 29 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 63 |)...PROC|EDURE (c|
|00000bd0| 3a 20 43 6f 6e 74 72 6f | 6c 6c 65 72 29 20 49 6e |: Contro|ller) In|
|00000be0| 74 65 72 6e 61 6c 69 7a | 65 2a 20 28 56 41 52 20 |ternaliz|e* (VAR |
|00000bf0| 72 64 3a 20 53 74 6f 72 | 65 73 2e 52 65 61 64 65 |rd: Stor|es.Reade|
|00000c00| 72 29 3b 0d 09 09 56 41 | 52 20 74 61 67 2c 20 74 |r);...VA|R tag, t|
|00000c10| 68 69 73 56 65 72 73 69 | 6f 6e 3a 20 53 48 4f 52 |hisVersi|on: SHOR|
|00000c20| 54 49 4e 54 3b 0d 09 42 | 45 47 49 4e 0d 09 09 63 |TINT;..B|EGIN...c|
|00000c30| 2e 49 6e 74 65 72 6e 61 | 6c 69 7a 65 5e 28 72 64 |.Interna|lize^(rd|
|00000c40| 29 3b 0d 09 09 49 46 20 | 72 64 2e 63 61 6e 63 65 |);...IF |rd.cance|
|00000c50| 6c 6c 65 64 20 54 48 45 | 4e 20 52 45 54 55 52 4e |lled THE|N RETURN|
|00000c60| 20 45 4e 44 3b 0d 09 09 | 72 64 2e 52 65 61 64 56 | END;...|rd.ReadV|
|00000c70| 65 72 73 69 6f 6e 28 6d | 69 6e 56 65 72 73 69 6f |ersion(m|inVersio|
|00000c80| 6e 2c 20 6d 61 78 42 61 | 73 65 56 65 72 73 69 6f |n, maxBa|seVersio|
|00000c90| 6e 2c 20 74 68 69 73 56 | 65 72 73 69 6f 6e 29 0d |n, thisV|ersion).|
|00000ca0| 09 45 4e 44 20 49 6e 74 | 65 72 6e 61 6c 69 7a 65 |.END Int|ernalize|
|00000cb0| 3b 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 63 |;...PROC|EDURE (c|
|00000cc0| 3a 20 43 6f 6e 74 72 6f | 6c 6c 65 72 29 20 45 78 |: Contro|ller) Ex|
|00000cd0| 74 65 72 6e 61 6c 69 7a | 65 2a 20 28 56 41 52 20 |ternaliz|e* (VAR |
|00000ce0| 77 72 3a 20 53 74 6f 72 | 65 73 2e 57 72 69 74 65 |wr: Stor|es.Write|
|00000cf0| 72 29 3b 0d 09 42 45 47 | 49 4e 0d 09 09 63 2e 45 |r);..BEG|IN...c.E|
|00000d00| 78 74 65 72 6e 61 6c 69 | 7a 65 5e 28 77 72 29 3b |xternali|ze^(wr);|
|00000d10| 0d 09 09 77 72 2e 57 72 | 69 74 65 56 65 72 73 69 |...wr.Wr|iteVersi|
|00000d20| 6f 6e 28 6d 61 78 42 61 | 73 65 56 65 72 73 69 6f |on(maxBa|seVersio|
|00000d30| 6e 29 0d 09 45 4e 44 20 | 45 78 74 65 72 6e 61 6c |n)..END |External|
|00000d40| 69 7a 65 3b 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |ize;...P|ROCEDURE|
|00000d50| 20 28 63 3a 20 43 6f 6e | 74 72 6f 6c 6c 65 72 29 | (c: Con|troller)|
|00000d60| 20 49 6e 69 74 56 69 65 | 77 2a 20 28 76 69 65 77 | InitVie|w* (view|
|00000d70| 3a 20 56 69 65 77 73 2e | 56 69 65 77 29 3b 0d 09 |: Views.|View);..|
|00000d80| 09 56 41 52 20 76 3a 20 | 46 6f 72 6d 56 69 65 77 |.VAR v: |FormView|
|00000d90| 73 2e 56 69 65 77 3b 0d | 09 42 45 47 49 4e 0d 09 |s.View;.|.BEGIN..|
|00000da0| 09 63 2e 49 6e 69 74 56 | 69 65 77 5e 28 76 69 65 |.c.InitV|iew^(vie|
|00000db0| 77 29 3b 0d 09 09 49 46 | 20 76 69 65 77 20 23 20 |w);...IF| view # |
|00000dc0| 4e 49 4c 20 54 48 45 4e | 0d 09 09 09 41 53 53 45 |NIL THEN|....ASSE|
|00000dd0| 52 54 28 76 69 65 77 20 | 49 53 20 46 6f 72 6d 56 |RT(view |IS FormV|
|00000de0| 69 65 77 73 2e 56 69 65 | 77 2c 20 32 35 29 3b 0d |iews.Vie|w, 25);.|
|00000df0| 09 09 09 63 2e 76 69 65 | 77 20 3a 3d 20 76 69 65 |...c.vie|w := vie|
|00000e00| 77 28 46 6f 72 6d 56 69 | 65 77 73 2e 56 69 65 77 |w(FormVi|ews.View|
|00000e10| 29 3b 20 63 2e 66 6f 72 | 6d 20 3a 3d 20 63 2e 76 |); c.for|m := c.v|
|00000e20| 69 65 77 2e 54 68 69 73 | 4d 6f 64 65 6c 28 29 0d |iew.This|Model().|
|00000e30| 09 09 45 4c 53 45 0d 09 | 09 09 63 2e 66 6f 72 6d |..ELSE..|..c.form|
|00000e40| 20 3a 3d 20 4e 49 4c 3b | 20 63 2e 76 69 65 77 20 | := NIL;| c.view |
|00000e50| 3a 3d 20 4e 49 4c 0d 09 | 09 45 4e 44 0d 09 45 4e |:= NIL..|.END..EN|
|00000e60| 44 20 49 6e 69 74 56 69 | 65 77 3b 0d 0d 09 50 52 |D InitVi|ew;...PR|
|00000e70| 4f 43 45 44 55 52 45 20 | 28 63 3a 20 43 6f 6e 74 |OCEDURE |(c: Cont|
|00000e80| 72 6f 6c 6c 65 72 29 20 | 54 68 69 73 56 69 65 77 |roller) |ThisView|
|00000e90| 2a 20 28 29 3a 20 46 6f | 72 6d 56 69 65 77 73 2e |* (): Fo|rmViews.|
|00000ea0| 56 69 65 77 3b 0d 09 42 | 45 47 49 4e 0d 09 09 52 |View;..B|EGIN...R|
|00000eb0| 45 54 55 52 4e 20 63 2e | 76 69 65 77 0d 09 45 4e |ETURN c.|view..EN|
|00000ec0| 44 20 54 68 69 73 56 69 | 65 77 3b 0d 0d 09 50 52 |D ThisVi|ew;...PR|
|00000ed0| 4f 43 45 44 55 52 45 20 | 28 63 3a 20 43 6f 6e 74 |OCEDURE |(c: Cont|
|00000ee0| 72 6f 6c 6c 65 72 29 20 | 53 65 6c 65 63 74 2a 20 |roller) |Select* |
|00000ef0| 28 76 69 65 77 3a 20 56 | 69 65 77 73 2e 56 69 65 |(view: V|iews.Vie|
|00000f00| 77 29 3b 0d 09 42 45 47 | 49 4e 0d 09 09 48 41 4c |w);..BEG|IN...HAL|
|00000f10| 54 28 31 32 37 29 0d 09 | 45 4e 44 20 53 65 6c 65 |T(127)..|END Sele|
|00000f20| 63 74 3b 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |ct;...PR|OCEDURE |
|00000f30| 28 63 3a 20 43 6f 6e 74 | 72 6f 6c 6c 65 72 29 20 |(c: Cont|roller) |
|00000f40| 44 65 73 65 6c 65 63 74 | 2a 20 28 76 69 65 77 3a |Deselect|* (view:|
|00000f50| 20 56 69 65 77 73 2e 56 | 69 65 77 29 3b 0d 09 42 | Views.V|iew);..B|
|00000f60| 45 47 49 4e 0d 09 09 48 | 41 4c 54 28 31 32 37 29 |EGIN...H|ALT(127)|
|00000f70| 0d 09 45 4e 44 20 44 65 | 73 65 6c 65 63 74 3b 0d |..END De|select;.|
|00000f80| 0d 09 50 52 4f 43 45 44 | 55 52 45 20 28 63 3a 20 |..PROCED|URE (c: |
|00000f90| 43 6f 6e 74 72 6f 6c 6c | 65 72 29 20 49 73 53 65 |Controll|er) IsSe|
|00000fa0| 6c 65 63 74 65 64 2a 20 | 28 76 69 65 77 3a 20 56 |lected* |(view: V|
|00000fb0| 69 65 77 73 2e 56 69 65 | 77 29 3a 20 42 4f 4f 4c |iews.Vie|w): BOOL|
|00000fc0| 45 41 4e 3b 0d 09 42 45 | 47 49 4e 0d 09 09 48 41 |EAN;..BE|GIN...HA|
|00000fd0| 4c 54 28 31 32 37 29 0d | 09 45 4e 44 20 49 73 53 |LT(127).|.END IsS|
|00000fe0| 65 6c 65 63 74 65 64 3b | 0d 0d 09 50 52 4f 43 45 |elected;|...PROCE|
|00000ff0| 44 55 52 45 20 28 63 3a | 20 43 6f 6e 74 72 6f 6c |DURE (c:| Control|
|00001000| 6c 65 72 29 20 47 65 74 | 53 65 6c 65 63 74 69 6f |ler) Get|Selectio|
|00001010| 6e 2a 20 28 29 3a 20 4c | 69 73 74 3b 0d 09 42 45 |n* (): L|ist;..BE|
|00001020| 47 49 4e 0d 09 09 48 41 | 4c 54 28 31 32 37 29 0d |GIN...HA|LT(127).|
|00001030| 09 45 4e 44 20 47 65 74 | 53 65 6c 65 63 74 69 6f |.END Get|Selectio|
|00001040| 6e 3b 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 28 |n;...PRO|CEDURE (|
|00001050| 63 3a 20 43 6f 6e 74 72 | 6f 6c 6c 65 72 29 20 53 |c: Contr|oller) S|
|00001060| 65 74 53 65 6c 65 63 74 | 69 6f 6e 2a 20 28 6c 3a |etSelect|ion* (l:|
|00001070| 20 4c 69 73 74 29 3b 0d | 09 42 45 47 49 4e 0d 09 | List);.|.BEGIN..|
|00001080| 09 48 41 4c 54 28 31 32 | 37 29 0d 09 45 4e 44 20 |.HALT(12|7)..END |
|00001090| 53 65 74 53 65 6c 65 63 | 74 69 6f 6e 3b 0d 0d 0d |SetSelec|tion;...|
|000010a0| 09 28 2a 2a 20 44 69 72 | 65 63 74 6f 72 79 20 2a |.(** Dir|ectory *|
|000010b0| 2a 29 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 28 |*)...PRO|CEDURE (|
|000010c0| 64 3a 20 44 69 72 65 63 | 74 6f 72 79 29 20 4e 65 |d: Direc|tory) Ne|
|000010d0| 77 56 69 65 77 2a 20 28 | 66 3a 20 46 6f 72 6d 4d |wView* (|f: FormM|
|000010e0| 6f 64 65 6c 73 2e 4d 6f | 64 65 6c 3b 20 6f 70 74 |odels.Mo|del; opt|
|000010f0| 73 3a 20 53 45 54 29 3a | 20 46 6f 72 6d 56 69 65 |s: SET):| FormVie|
|00001100| 77 73 2e 56 69 65 77 3b | 0d 09 42 45 47 49 4e 0d |ws.View;|..BEGIN.|
|00001110| 09 09 48 41 4c 54 28 31 | 32 37 29 0d 09 45 4e 44 |..HALT(1|27)..END|
|00001120| 20 4e 65 77 56 69 65 77 | 3b 0d 0d 0d 09 28 2a 20 | NewView|;....(* |
|00001130| 61 75 78 69 6c 69 61 72 | 79 20 70 72 6f 63 65 64 |auxiliar|y proced|
|00001140| 75 72 65 73 20 2a 29 0d | 0d 09 50 52 4f 43 45 44 |ures *).|..PROCED|
|00001150| 55 52 45 20 4d 61 72 6b | 4c 69 73 74 20 28 63 3a |URE Mark|List (c:|
|00001160| 20 53 74 64 43 6f 6e 74 | 72 6f 6c 6c 65 72 3b 20 | StdCont|roller; |
|00001170| 66 3a 20 56 69 65 77 73 | 2e 46 72 61 6d 65 3b 20 |f: Views|.Frame; |
|00001180| 68 3a 20 4c 69 73 74 3b | 20 73 68 6f 77 3a 20 42 |h: List;| show: B|
|00001190| 4f 4f 4c 45 41 4e 29 3b | 0d 09 09 56 41 52 20 6c |OOLEAN);|...VAR l|
|000011a0| 2c 20 74 2c 20 72 2c 20 | 62 2c 20 73 3a 20 4c 4f |, t, r, |b, s: LO|
|000011b0| 4e 47 49 4e 54 3b 0d 09 | 42 45 47 49 4e 0d 09 09 |NGINT;..|BEGIN...|
|000011c0| 49 46 20 28 2a 28 66 2e | 66 72 6f 6e 74 20 4f 52 |IF (*(f.|front OR|
|000011d0| 20 66 2e 74 61 72 67 65 | 74 29 20 26 2a 29 20 7e | f.targe|t) &*) ~|
|000011e0| 28 43 6f 6e 74 61 69 6e | 65 72 73 2e 6e 6f 53 65 |(Contain|ers.noSe|
|000011f0| 6c 65 63 74 69 6f 6e 20 | 49 4e 20 63 2e 6f 70 74 |lection |IN c.opt|
|00001200| 73 29 20 54 48 45 4e 0d | 09 09 09 73 20 3a 3d 20 |s) THEN.|...s := |
|00001210| 32 20 2a 20 66 2e 75 6e | 69 74 3b 0d 09 09 09 57 |2 * f.un|it;....W|
|00001220| 48 49 4c 45 20 68 20 23 | 20 4e 49 4c 20 44 4f 0d |HILE h #| NIL DO.|
|00001230| 09 09 09 09 63 2e 76 69 | 65 77 2e 47 65 74 52 65 |....c.vi|ew.GetRe|
|00001240| 63 74 28 66 2c 20 68 2e | 76 69 65 77 2c 20 6c 2c |ct(f, h.|view, l,|
|00001250| 20 74 2c 20 72 2c 20 62 | 29 3b 0d 09 09 09 09 66 | t, r, b|);.....f|
|00001260| 2e 4d 61 72 6b 52 65 63 | 74 28 6c 20 2d 20 73 2c |.MarkRec|t(l - s,|
|00001270| 20 74 20 2d 20 73 2c 20 | 72 20 2b 20 73 2c 20 62 | t - s, |r + s, b|
|00001280| 20 2b 20 73 2c 20 73 2c | 20 50 6f 72 74 73 2e 68 | + s, s,| Ports.h|
|00001290| 69 6c 69 74 65 2c 20 73 | 68 6f 77 29 3b 0d 09 09 |ilite, s|how);...|
|000012a0| 09 09 68 20 3a 3d 20 68 | 2e 6e 65 78 74 0d 09 09 |..h := h|.next...|
|000012b0| 09 45 4e 44 0d 09 09 45 | 4e 44 0d 09 45 4e 44 20 |.END...E|ND..END |
|000012c0| 4d 61 72 6b 4c 69 73 74 | 3b 0d 0d 09 50 52 4f 43 |MarkList|;...PROC|
|000012d0| 45 44 55 52 45 20 54 6f | 67 67 6c 65 20 28 63 3a |EDURE To|ggle (c:|
|000012e0| 20 53 74 64 43 6f 6e 74 | 72 6f 6c 6c 65 72 3b 20 | StdCont|roller; |
|000012f0| 76 69 65 77 3a 20 56 69 | 65 77 73 2e 56 69 65 77 |view: Vi|ews.View|
|00001300| 29 3b 0d 09 42 45 47 49 | 4e 0d 09 09 49 46 20 63 |);..BEGI|N...IF c|
|00001310| 2e 49 73 53 65 6c 65 63 | 74 65 64 28 76 69 65 77 |.IsSelec|ted(view|
|00001320| 29 20 54 48 45 4e 20 63 | 2e 44 65 73 65 6c 65 63 |) THEN c|.Deselec|
|00001330| 74 28 76 69 65 77 29 20 | 45 4c 53 45 20 63 2e 53 |t(view) |ELSE c.S|
|00001340| 65 6c 65 63 74 28 76 69 | 65 77 29 20 45 4e 44 0d |elect(vi|ew) END.|
|00001350| 09 45 4e 44 20 54 6f 67 | 67 6c 65 3b 0d 0d 0d 09 |.END Tog|gle;....|
|00001360| 28 2a 20 53 74 64 43 6f | 6e 74 72 6f 6c 6c 65 72 |(* StdCo|ntroller|
|00001370| 20 2a 29 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 | *)...PR|OCEDURE |
|00001380| 28 63 3a 20 53 74 64 43 | 6f 6e 74 72 6f 6c 6c 65 |(c: StdC|ontrolle|
|00001390| 72 29 20 49 6e 74 65 72 | 6e 61 6c 69 7a 65 20 28 |r) Inter|nalize (|
|000013a0| 56 41 52 20 72 64 3a 20 | 53 74 6f 72 65 73 2e 52 |VAR rd: |Stores.R|
|000013b0| 65 61 64 65 72 29 3b 0d | 09 09 56 41 52 20 74 68 |eader);.|..VAR th|
|000013c0| 69 73 56 65 72 73 69 6f | 6e 3a 20 53 48 4f 52 54 |isVersio|n: SHORT|
|000013d0| 49 4e 54 3b 0d 09 42 45 | 47 49 4e 0d 09 09 63 2e |INT;..BE|GIN...c.|
|000013e0| 49 6e 74 65 72 6e 61 6c | 69 7a 65 5e 28 72 64 29 |Internal|ize^(rd)|
|000013f0| 3b 0d 09 09 49 46 20 72 | 64 2e 63 61 6e 63 65 6c |;...IF r|d.cancel|
|00001400| 6c 65 64 20 54 48 45 4e | 20 52 45 54 55 52 4e 20 |led THEN| RETURN |
|00001410| 45 4e 44 3b 0d 09 09 72 | 64 2e 52 65 61 64 56 65 |END;...r|d.ReadVe|
|00001420| 72 73 69 6f 6e 28 6d 69 | 6e 56 65 72 73 69 6f 6e |rsion(mi|nVersion|
|00001430| 2c 20 6d 61 78 53 74 64 | 56 65 72 73 69 6f 6e 2c |, maxStd|Version,|
|00001440| 20 74 68 69 73 56 65 72 | 73 69 6f 6e 29 3b 0d 09 | thisVer|sion);..|
|00001450| 09 63 2e 73 65 6c 20 3a | 3d 20 4e 49 4c 3b 20 63 |.c.sel :|= NIL; c|
|00001460| 2e 6c 61 73 74 58 20 3a | 3d 20 2d 31 0d 09 45 4e |.lastX :|= -1..EN|
|00001470| 44 20 49 6e 74 65 72 6e | 61 6c 69 7a 65 3b 0d 0d |D Intern|alize;..|
|00001480| 09 50 52 4f 43 45 44 55 | 52 45 20 28 63 3a 20 53 |.PROCEDU|RE (c: S|
|00001490| 74 64 43 6f 6e 74 72 6f | 6c 6c 65 72 29 20 45 78 |tdContro|ller) Ex|
|000014a0| 74 65 72 6e 61 6c 69 7a | 65 20 28 56 41 52 20 77 |ternaliz|e (VAR w|
|000014b0| 72 3a 20 53 74 6f 72 65 | 73 2e 57 72 69 74 65 72 |r: Store|s.Writer|
|000014c0| 29 3b 0d 09 42 45 47 49 | 4e 0d 09 09 63 2e 45 78 |);..BEGI|N...c.Ex|
|000014d0| 74 65 72 6e 61 6c 69 7a | 65 5e 28 77 72 29 3b 0d |ternaliz|e^(wr);.|
|000014e0| 09 09 77 72 2e 57 72 69 | 74 65 56 65 72 73 69 6f |..wr.Wri|teVersio|
|000014f0| 6e 28 6d 61 78 53 74 64 | 56 65 72 73 69 6f 6e 29 |n(maxStd|Version)|
|00001500| 0d 09 45 4e 44 20 45 78 | 74 65 72 6e 61 6c 69 7a |..END Ex|ternaliz|
|00001510| 65 3b 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 28 |e;...PRO|CEDURE (|
|00001520| 63 3a 20 53 74 64 43 6f | 6e 74 72 6f 6c 6c 65 72 |c: StdCo|ntroller|
|00001530| 29 20 43 6f 70 79 46 72 | 6f 6d 20 28 73 6f 75 72 |) CopyFr|om (sour|
|00001540| 63 65 3a 20 43 6f 6e 74 | 72 6f 6c 6c 65 72 73 2e |ce: Cont|rollers.|
|00001550| 43 6f 6e 74 72 6f 6c 6c | 65 72 29 3b 0d 09 42 45 |Controll|er);..BE|
|00001560| 47 49 4e 0d 09 09 63 2e | 43 6f 70 79 46 72 6f 6d |GIN...c.|CopyFrom|
|00001570| 5e 28 73 6f 75 72 63 65 | 29 3b 0d 09 09 63 2e 73 |^(source|);...c.s|
|00001580| 65 6c 20 3a 3d 20 4e 49 | 4c 3b 20 63 2e 6c 61 73 |el := NI|L; c.las|
|00001590| 74 58 20 3a 3d 20 2d 31 | 0d 09 45 4e 44 20 43 6f |tX := -1|..END Co|
|000015a0| 70 79 46 72 6f 6d 3b 0d | 0d 09 50 52 4f 43 45 44 |pyFrom;.|..PROCED|
|000015b0| 55 52 45 20 28 63 3a 20 | 53 74 64 43 6f 6e 74 72 |URE (c: |StdContr|
|000015c0| 6f 6c 6c 65 72 29 20 52 | 65 73 74 6f 72 65 4d 61 |oller) R|estoreMa|
|000015d0| 72 6b 73 20 28 66 3a 20 | 56 69 65 77 73 2e 46 72 |rks (f: |Views.Fr|
|000015e0| 61 6d 65 3b 20 6c 2c 20 | 74 2c 20 72 2c 20 62 3a |ame; l, |t, r, b:|
|000015f0| 20 4c 4f 4e 47 49 4e 54 | 29 3b 0d 09 42 45 47 49 | LONGINT|);..BEGI|
|00001600| 4e 0d 09 09 49 46 20 66 | 2e 6d 61 72 6b 20 54 48 |N...IF f|.mark TH|
|00001610| 45 4e 0d 09 09 09 63 2e | 52 65 73 74 6f 72 65 4d |EN....c.|RestoreM|
|00001620| 61 72 6b 73 5e 28 66 2c | 20 6c 2c 20 74 2c 20 72 |arks^(f,| l, t, r|
|00001630| 2c 20 62 29 3b 0d 09 09 | 09 49 46 20 28 63 2e 6c |, b);...|.IF (c.l|
|00001640| 61 73 74 58 20 3c 3d 20 | 66 2e 6c 20 29 20 4f 52 |astX <= |f.l ) OR|
|00001650| 20 28 63 2e 6c 61 73 74 | 58 20 3e 3d 20 66 2e 72 | (c.last|X >= f.r|
|00001660| 29 20 4f 52 20 28 63 2e | 6c 61 73 74 59 20 3c 3d |) OR (c.|lastY <=|
|00001670| 20 66 2e 74 29 20 4f 52 | 20 28 63 2e 6c 61 73 74 | f.t) OR| (c.last|
|00001680| 59 20 3e 3d 20 66 2e 62 | 29 20 54 48 45 4e 0d 09 |Y >= f.b|) THEN..|
|00001690| 09 09 09 63 2e 6c 61 73 | 74 58 20 3a 3d 20 28 66 |...c.las|tX := (f|
|000016a0| 2e 6c 20 2b 20 66 2e 72 | 29 20 44 49 56 20 32 3b |.l + f.r|) DIV 2;|
|000016b0| 20 63 2e 6c 61 73 74 59 | 20 3a 3d 20 28 66 2e 74 | c.lastY| := (f.t|
|000016c0| 20 2b 20 66 2e 62 29 20 | 44 49 56 20 32 0d 09 09 | + f.b) |DIV 2...|
|000016d0| 09 45 4e 44 0d 09 09 45 | 4e 44 0d 09 45 4e 44 20 |.END...E|ND..END |
|000016e0| 52 65 73 74 6f 72 65 4d | 61 72 6b 73 3b 0d 0d 09 |RestoreM|arks;...|
|000016f0| 50 52 4f 43 45 44 55 52 | 45 20 28 63 3a 20 53 74 |PROCEDUR|E (c: St|
|00001700| 64 43 6f 6e 74 72 6f 6c | 6c 65 72 29 20 48 61 6e |dControl|ler) Han|
|00001710| 64 6c 65 56 69 65 77 4d | 73 67 20 28 66 3a 20 56 |dleViewM|sg (f: V|
|00001720| 69 65 77 73 2e 46 72 61 | 6d 65 3b 0d 09 09 09 09 |iews.Fra|me;.....|
|00001730| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........|
|00001740| 56 41 52 20 6d 73 67 3a | 20 56 69 65 77 73 2e 4d |VAR msg:| Views.M|
|00001750| 65 73 73 61 67 65 29 3b | 0d 09 42 45 47 49 4e 0d |essage);|..BEGIN.|
|00001760| 09 09 57 49 54 48 20 6d | 73 67 3a 20 4d 61 72 6b |..WITH m|sg: Mark|
|00001770| 4d 73 67 20 44 4f 0d 09 | 09 09 4d 61 72 6b 4c 69 |Msg DO..|..MarkLi|
|00001780| 73 74 28 63 2c 20 66 2c | 20 6d 73 67 2e 6c 69 73 |st(c, f,| msg.lis|
|00001790| 74 2c 20 6d 73 67 2e 73 | 68 6f 77 29 0d 09 09 45 |t, msg.s|how)...E|
|000017a0| 4c 53 45 0d 09 09 09 63 | 2e 48 61 6e 64 6c 65 56 |LSE....c|.HandleV|
|000017b0| 69 65 77 4d 73 67 5e 28 | 66 2c 20 6d 73 67 29 0d |iewMsg^(|f, msg).|
|000017c0| 09 09 45 4e 44 0d 09 45 | 4e 44 20 48 61 6e 64 6c |..END..E|ND Handl|
|000017d0| 65 56 69 65 77 4d 73 67 | 3b 0d 0d 0d 09 28 2a 20 |eViewMsg|;....(* |
|000017e0| 73 75 62 63 6c 61 73 73 | 20 68 6f 6f 6b 73 20 2a |subclass| hooks *|
|000017f0| 29 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 63 |)...PROC|EDURE (c|
|00001800| 3a 20 53 74 64 43 6f 6e | 74 72 6f 6c 6c 65 72 29 |: StdCon|troller)|
|00001810| 20 47 65 74 43 6f 6e 74 | 65 78 74 54 79 70 65 20 | GetCont|extType |
|00001820| 28 56 41 52 20 74 79 70 | 65 3a 20 53 74 6f 72 65 |(VAR typ|e: Store|
|00001830| 73 2e 54 79 70 65 4e 61 | 6d 65 29 3b 0d 09 42 45 |s.TypeNa|me);..BE|
|00001840| 47 49 4e 0d 09 09 43 4f | 50 59 28 22 46 6f 72 6d |GIN...CO|PY("Form|
|00001850| 56 69 65 77 73 2e 56 69 | 65 77 44 65 73 63 22 2c |Views.Vi|ewDesc",|
|00001860| 20 74 79 70 65 29 0d 09 | 45 4e 44 20 47 65 74 43 | type)..|END GetC|
|00001870| 6f 6e 74 65 78 74 54 79 | 70 65 3b 0d 0d 09 50 52 |ontextTy|pe;...PR|
|00001880| 4f 43 45 44 55 52 45 20 | 28 63 3a 20 53 74 64 43 |OCEDURE |(c: StdC|
|00001890| 6f 6e 74 72 6f 6c 6c 65 | 72 29 20 47 65 74 56 61 |ontrolle|r) GetVa|
|000018a0| 6c 69 64 4f 70 73 20 28 | 56 41 52 20 76 61 6c 69 |lidOps (|VAR vali|
|000018b0| 64 3a 20 53 45 54 29 3b | 0d 09 42 45 47 49 4e 0d |d: SET);|..BEGIN.|
|000018c0| 09 09 76 61 6c 69 64 20 | 3a 3d 20 7b 43 6f 6e 74 |..valid |:= {Cont|
|000018d0| 72 6f 6c 6c 65 72 73 2e | 70 61 73 74 65 43 68 61 |rollers.|pasteCha|
|000018e0| 72 2c 20 43 6f 6e 74 72 | 6f 6c 6c 65 72 73 2e 70 |r, Contr|ollers.p|
|000018f0| 61 73 74 65 7d 3b 0d 09 | 09 49 46 20 63 2e 73 65 |aste};..|.IF c.se|
|00001900| 6c 20 23 20 4e 49 4c 20 | 54 48 45 4e 20 76 61 6c |l # NIL |THEN val|
|00001910| 69 64 20 3a 3d 20 76 61 | 6c 69 64 20 2b 20 7b 43 |id := va|lid + {C|
|00001920| 6f 6e 74 72 6f 6c 6c 65 | 72 73 2e 63 75 74 2c 20 |ontrolle|rs.cut, |
|00001930| 43 6f 6e 74 72 6f 6c 6c | 65 72 73 2e 63 6f 70 79 |Controll|ers.copy|
|00001940| 7d 20 45 4e 44 0d 09 45 | 4e 44 20 47 65 74 56 61 |} END..E|ND GetVa|
|00001950| 6c 69 64 4f 70 73 3b 0d | 0d 09 50 52 4f 43 45 44 |lidOps;.|..PROCED|
|00001960| 55 52 45 20 28 63 3a 20 | 53 74 64 43 6f 6e 74 72 |URE (c: |StdContr|
|00001970| 6f 6c 6c 65 72 29 20 4e | 61 74 69 76 65 4d 6f 64 |oller) N|ativeMod|
|00001980| 65 6c 20 28 6d 6f 64 65 | 6c 3a 20 4d 6f 64 65 6c |el (mode|l: Model|
|00001990| 73 2e 4d 6f 64 65 6c 29 | 3a 20 42 4f 4f 4c 45 41 |s.Model)|: BOOLEA|
|000019a0| 4e 3b 0d 09 42 45 47 49 | 4e 0d 09 09 41 53 53 45 |N;..BEGI|N...ASSE|
|000019b0| 52 54 28 6d 6f 64 65 6c | 20 23 20 4e 49 4c 2c 20 |RT(model| # NIL, |
|000019c0| 32 30 29 3b 0d 09 09 52 | 45 54 55 52 4e 20 6d 6f |20);...R|ETURN mo|
|000019d0| 64 65 6c 20 49 53 20 46 | 6f 72 6d 4d 6f 64 65 6c |del IS F|ormModel|
|000019e0| 73 2e 4d 6f 64 65 6c 0d | 09 45 4e 44 20 4e 61 74 |s.Model.|.END Nat|
|000019f0| 69 76 65 4d 6f 64 65 6c | 3b 0d 0d 09 50 52 4f 43 |iveModel|;...PROC|
|00001a00| 45 44 55 52 45 20 28 63 | 3a 20 53 74 64 43 6f 6e |EDURE (c|: StdCon|
|00001a10| 74 72 6f 6c 6c 65 72 29 | 20 4e 61 74 69 76 65 56 |troller)| NativeV|
|00001a20| 69 65 77 20 28 76 69 65 | 77 3a 20 56 69 65 77 73 |iew (vie|w: Views|
|00001a30| 2e 56 69 65 77 29 3a 20 | 42 4f 4f 4c 45 41 4e 3b |.View): |BOOLEAN;|
|00001a40| 0d 09 42 45 47 49 4e 0d | 09 09 41 53 53 45 52 54 |..BEGIN.|..ASSERT|
|00001a50| 28 76 69 65 77 20 23 20 | 4e 49 4c 2c 20 32 30 29 |(view # |NIL, 20)|
|00001a60| 3b 0d 09 09 52 45 54 55 | 52 4e 20 76 69 65 77 20 |;...RETU|RN view |
|00001a70| 49 53 20 46 6f 72 6d 56 | 69 65 77 73 2e 56 69 65 |IS FormV|iews.Vie|
|00001a80| 77 0d 09 45 4e 44 20 4e | 61 74 69 76 65 56 69 65 |w..END N|ativeVie|
|00001a90| 77 3b 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 28 |w;...PRO|CEDURE (|
|00001aa0| 63 3a 20 53 74 64 43 6f | 6e 74 72 6f 6c 6c 65 72 |c: StdCo|ntroller|
|00001ab0| 29 20 4e 61 74 69 76 65 | 43 75 72 73 6f 72 41 74 |) Native|CursorAt|
|00001ac0| 20 28 66 3a 20 56 69 65 | 77 73 2e 46 72 61 6d 65 | (f: Vie|ws.Frame|
|00001ad0| 3b 20 78 2c 20 79 3a 20 | 4c 4f 4e 47 49 4e 54 29 |; x, y: |LONGINT)|
|00001ae0| 3a 20 49 4e 54 45 47 45 | 52 3b 0d 09 42 45 47 49 |: INTEGE|R;..BEGI|
|00001af0| 4e 0d 09 09 41 53 53 45 | 52 54 28 66 20 23 20 4e |N...ASSE|RT(f # N|
|00001b00| 49 4c 2c 20 32 30 29 3b | 0d 09 09 52 45 54 55 52 |IL, 20);|...RETUR|
|00001b10| 4e 20 50 6f 72 74 73 2e | 67 72 61 70 68 69 63 73 |N Ports.|graphics|
|00001b20| 43 75 72 73 6f 72 0d 09 | 45 4e 44 20 4e 61 74 69 |Cursor..|END Nati|
|00001b30| 76 65 43 75 72 73 6f 72 | 41 74 3b 0d 0d 09 50 52 |veCursor|At;...PR|
|00001b40| 4f 43 45 44 55 52 45 20 | 28 63 3a 20 53 74 64 43 |OCEDURE |(c: StdC|
|00001b50| 6f 6e 74 72 6f 6c 6c 65 | 72 29 20 47 65 74 46 69 |ontrolle|r) GetFi|
|00001b60| 72 73 74 56 69 65 77 20 | 28 73 65 6c 65 63 74 69 |rstView |(selecti|
|00001b70| 6f 6e 3a 20 42 4f 4f 4c | 45 41 4e 3b 20 56 41 52 |on: BOOL|EAN; VAR|
|00001b80| 20 76 3a 20 56 69 65 77 | 73 2e 56 69 65 77 29 3b | v: View|s.View);|
|00001b90| 0d 09 09 56 41 52 20 72 | 3a 20 46 6f 72 6d 4d 6f |...VAR r|: FormMo|
|00001ba0| 64 65 6c 73 2e 52 65 61 | 64 65 72 3b 0d 09 42 45 |dels.Rea|der;..BE|
|00001bb0| 47 49 4e 0d 09 09 49 46 | 20 73 65 6c 65 63 74 69 |GIN...IF| selecti|
|00001bc0| 6f 6e 20 54 48 45 4e 0d | 09 09 09 49 46 20 63 2e |on THEN.|...IF c.|
|00001bd0| 73 65 6c 20 23 20 4e 49 | 4c 20 54 48 45 4e 20 76 |sel # NI|L THEN v|
|00001be0| 20 3a 3d 20 63 2e 73 65 | 6c 2e 76 69 65 77 20 45 | := c.se|l.view E|
|00001bf0| 4c 53 45 20 76 20 3a 3d | 20 4e 49 4c 20 45 4e 44 |LSE v :=| NIL END|
|00001c00| 0d 09 09 45 4c 53 45 0d | 09 09 09 72 20 3a 3d 20 |...ELSE.|...r := |
|00001c10| 63 2e 66 6f 72 6d 2e 4e | 65 77 52 65 61 64 65 72 |c.form.N|ewReader|
|00001c20| 28 63 2e 72 65 61 64 65 | 72 29 3b 20 63 2e 72 65 |(c.reade|r); c.re|
|00001c30| 61 64 65 72 20 3a 3d 20 | 72 3b 0d 09 09 09 72 2e |ader := |r;....r.|
|00001c40| 53 65 74 28 4e 49 4c 29 | 3b 20 72 2e 52 65 61 64 |Set(NIL)|; r.Read|
|00001c50| 56 69 65 77 28 76 29 0d | 09 09 45 4e 44 0d 09 45 |View(v).|..END..E|
|00001c60| 4e 44 20 47 65 74 46 69 | 72 73 74 56 69 65 77 3b |ND GetFi|rstView;|
|00001c70| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 28 63 3a |...PROCE|DURE (c:|
|00001c80| 20 53 74 64 43 6f 6e 74 | 72 6f 6c 6c 65 72 29 20 | StdCont|roller) |
|00001c90| 47 65 74 4e 65 78 74 56 | 69 65 77 20 28 73 65 6c |GetNextV|iew (sel|
|00001ca0| 65 63 74 69 6f 6e 3a 20 | 42 4f 4f 4c 45 41 4e 3b |ection: |BOOLEAN;|
|00001cb0| 20 56 41 52 20 76 3a 20 | 56 69 65 77 73 2e 56 69 | VAR v: |Views.Vi|
|00001cc0| 65 77 29 3b 0d 09 09 56 | 41 52 20 68 3a 20 4c 69 |ew);...V|AR h: Li|
|00001cd0| 73 74 3b 20 72 3a 20 46 | 6f 72 6d 4d 6f 64 65 6c |st; r: F|ormModel|
|00001ce0| 73 2e 52 65 61 64 65 72 | 3b 0d 09 42 45 47 49 4e |s.Reader|;..BEGIN|
|00001cf0| 09 28 2a 20 63 6f 75 6c | 64 20 62 65 20 6f 70 74 |.(* coul|d be opt|
|00001d00| 69 6d 69 7a 65 64 20 2a | 29 0d 09 09 41 53 53 45 |imized *|)...ASSE|
|00001d10| 52 54 28 76 20 23 20 4e | 49 4c 2c 20 32 30 29 3b |RT(v # N|IL, 20);|
|00001d20| 0d 09 09 49 46 20 73 65 | 6c 65 63 74 69 6f 6e 20 |...IF se|lection |
|00001d30| 54 48 45 4e 0d 09 09 09 | 68 20 3a 3d 20 63 2e 73 |THEN....|h := c.s|
|00001d40| 65 6c 3b 20 57 48 49 4c | 45 20 28 68 20 23 20 4e |el; WHIL|E (h # N|
|00001d50| 49 4c 29 20 26 20 28 68 | 2e 76 69 65 77 20 23 20 |IL) & (h|.view # |
|00001d60| 76 29 20 44 4f 20 68 20 | 3a 3d 20 68 2e 6e 65 78 |v) DO h |:= h.nex|
|00001d70| 74 20 45 4e 44 3b 20 41 | 53 53 45 52 54 28 68 20 |t END; A|SSERT(h |
|00001d80| 23 20 4e 49 4c 2c 20 32 | 31 29 3b 0d 09 09 09 49 |# NIL, 2|1);....I|
|00001d90| 46 20 68 2e 6e 65 78 74 | 20 23 20 4e 49 4c 20 54 |F h.next| # NIL T|
|00001da0| 48 45 4e 20 76 20 3a 3d | 20 68 2e 6e 65 78 74 2e |HEN v :=| h.next.|
|00001db0| 76 69 65 77 20 45 4c 53 | 45 20 76 20 3a 3d 20 4e |view ELS|E v := N|
|00001dc0| 49 4c 20 45 4e 44 0d 09 | 09 45 4c 53 45 0d 09 09 |IL END..|.ELSE...|
|00001dd0| 09 72 20 3a 3d 20 63 2e | 66 6f 72 6d 2e 4e 65 77 |.r := c.|form.New|
|00001de0| 52 65 61 64 65 72 28 63 | 2e 72 65 61 64 65 72 29 |Reader(c|.reader)|
|00001df0| 3b 20 63 2e 72 65 61 64 | 65 72 20 3a 3d 20 72 3b |; c.read|er := r;|
|00001e00| 0d 09 09 09 72 2e 53 65 | 74 28 76 29 3b 20 72 2e |....r.Se|t(v); r.|
|00001e10| 52 65 61 64 56 69 65 77 | 28 76 29 0d 09 09 45 4e |ReadView|(v)...EN|
|00001e20| 44 0d 09 45 4e 44 20 47 | 65 74 4e 65 78 74 56 69 |D..END G|etNextVi|
|00001e30| 65 77 3b 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |ew;...PR|OCEDURE |
|00001e40| 28 63 3a 20 53 74 64 43 | 6f 6e 74 72 6f 6c 6c 65 |(c: StdC|ontrolle|
|00001e50| 72 29 20 47 65 74 53 65 | 6c 65 63 74 69 6f 6e 42 |r) GetSe|lectionB|
|00001e60| 6f 75 6e 64 73 2a 20 28 | 66 3a 20 56 69 65 77 73 |ounds* (|f: Views|
|00001e70| 2e 46 72 61 6d 65 3b 20 | 56 41 52 20 78 2c 20 79 |.Frame; |VAR x, y|
|00001e80| 2c 20 77 2c 20 68 3a 20 | 4c 4f 4e 47 49 4e 54 29 |, w, h: |LONGINT)|
|00001e90| 3b 0d 09 09 56 41 52 20 | 73 65 6c 3a 20 4c 69 73 |;...VAR |sel: Lis|
|00001ea0| 74 3b 20 6c 2c 20 74 2c | 20 72 2c 20 62 2c 20 67 |t; l, t,| r, b, g|
|00001eb0| 77 2c 20 67 68 3a 20 4c | 4f 4e 47 49 4e 54 3b 20 |w, gh: L|ONGINT; |
|00001ec0| 67 3a 20 56 69 65 77 73 | 2e 46 72 61 6d 65 3b 0d |g: Views|.Frame;.|
|00001ed0| 09 42 45 47 49 4e 0d 09 | 09 49 46 20 63 2e 53 69 |.BEGIN..|.IF c.Si|
|00001ee0| 6e 67 6c 65 74 6f 6e 28 | 29 20 23 20 4e 49 4c 20 |ngleton(|) # NIL |
|00001ef0| 54 48 45 4e 0d 09 09 09 | 63 2e 47 65 74 53 65 6c |THEN....|c.GetSel|
|00001f00| 65 63 74 69 6f 6e 42 6f | 75 6e 64 73 5e 28 66 2c |ectionBo|unds^(f,|
|00001f10| 20 78 2c 20 79 2c 20 77 | 2c 20 68 29 0d 09 09 45 | x, y, w|, h)...E|
|00001f20| 4c 53 45 0d 09 09 09 6c | 20 3a 3d 20 4d 41 58 28 |LSE....l| := MAX(|
|00001f30| 4c 4f 4e 47 49 4e 54 29 | 3b 20 74 20 3a 3d 20 4d |LONGINT)|; t := M|
|00001f40| 41 58 28 4c 4f 4e 47 49 | 4e 54 29 3b 20 72 20 3a |AX(LONGI|NT); r :|
|00001f50| 3d 20 4d 49 4e 28 4c 4f | 4e 47 49 4e 54 29 3b 20 |= MIN(LO|NGINT); |
|00001f60| 62 20 3a 3d 20 4d 49 4e | 28 4c 4f 4e 47 49 4e 54 |b := MIN|(LONGINT|
|00001f70| 29 3b 0d 09 09 09 73 65 | 6c 20 3a 3d 20 63 2e 73 |);....se|l := c.s|
|00001f80| 65 6c 3b 0d 09 09 09 57 | 48 49 4c 45 20 73 65 6c |el;....W|HILE sel|
|00001f90| 20 23 20 4e 49 4c 20 44 | 4f 0d 09 09 09 09 67 20 | # NIL D|O.....g |
|00001fa0| 3a 3d 20 56 69 65 77 73 | 2e 54 68 69 73 46 72 61 |:= Views|.ThisFra|
|00001fb0| 6d 65 28 66 2c 20 73 65 | 6c 2e 76 69 65 77 29 3b |me(f, se|l.view);|
|00001fc0| 0d 09 09 09 09 49 46 20 | 67 20 23 20 4e 49 4c 20 |.....IF |g # NIL |
|00001fd0| 54 48 45 4e 0d 09 09 09 | 09 09 73 65 6c 2e 76 69 |THEN....|..sel.vi|
|00001fe0| 65 77 2e 63 6f 6e 74 65 | 78 74 2e 47 65 74 53 69 |ew.conte|xt.GetSi|
|00001ff0| 7a 65 28 67 77 2c 20 67 | 68 29 3b 0d 09 09 09 09 |ze(gw, g|h);.....|
|00002000| 09 49 46 20 67 2e 67 78 | 20 3c 20 6c 20 54 48 45 |.IF g.gx| < l THE|
|00002010| 4e 20 6c 20 3a 3d 20 67 | 2e 67 78 20 45 4e 44 3b |N l := g|.gx END;|
|00002020| 0d 09 09 09 09 09 49 46 | 20 67 2e 67 79 20 3c 20 |......IF| g.gy < |
|00002030| 74 20 54 48 45 4e 20 74 | 20 3a 3d 20 67 2e 67 79 |t THEN t| := g.gy|
|00002040| 20 45 4e 44 3b 0d 09 09 | 09 09 09 49 46 20 67 2e | END;...|...IF g.|
|00002050| 67 78 20 2b 20 67 77 20 | 3e 20 72 20 54 48 45 4e |gx + gw |> r THEN|
|00002060| 20 72 20 3a 3d 20 67 2e | 67 78 20 2b 20 67 77 20 | r := g.|gx + gw |
|00002070| 45 4e 44 3b 0d 09 09 09 | 09 09 49 46 20 67 2e 67 |END;....|..IF g.g|
|00002080| 79 20 2b 20 67 68 20 3e | 20 62 20 54 48 45 4e 20 |y + gh >| b THEN |
|00002090| 62 20 3a 3d 20 67 2e 67 | 79 20 2b 20 67 68 20 45 |b := g.g|y + gh E|
|000020a0| 4e 44 3b 0d 09 09 09 09 | 45 4e 44 3b 0d 09 09 09 |ND;.....|END;....|
|000020b0| 09 73 65 6c 20 3a 3d 20 | 73 65 6c 2e 6e 65 78 74 |.sel := |sel.next|
|000020c0| 0d 09 09 09 45 4e 44 3b | 0d 09 09 09 49 46 20 28 |....END;|....IF (|
|000020d0| 6c 20 3c 20 72 29 20 26 | 20 28 74 20 3c 20 62 29 |l < r) &| (t < b)|
|000020e0| 20 54 48 45 4e 0d 09 09 | 09 09 78 20 3a 3d 20 6c | THEN...|..x := l|
|000020f0| 20 2d 20 66 2e 67 78 20 | 2d 20 63 2e 76 69 65 77 | - f.gx |- c.view|
|00002100| 2e 62 6f 72 64 65 72 3b | 20 79 20 3a 3d 20 74 20 |.border;| y := t |
|00002110| 2d 20 66 2e 67 79 20 2d | 20 63 2e 76 69 65 77 2e |- f.gy -| c.view.|
|00002120| 62 6f 72 64 65 72 3b 0d | 09 09 09 09 77 20 3a 3d |border;.|....w :=|
|00002130| 20 72 20 2d 20 6c 20 2b | 20 32 20 2a 20 63 2e 76 | r - l +| 2 * c.v|
|00002140| 69 65 77 2e 62 6f 72 64 | 65 72 3b 20 68 20 3a 3d |iew.bord|er; h :=|
|00002150| 20 62 20 2d 20 74 20 2b | 20 32 20 2a 20 63 2e 76 | b - t +| 2 * c.v|
|00002160| 69 65 77 2e 62 6f 72 64 | 65 72 0d 09 09 09 45 4c |iew.bord|er....EL|
|00002170| 53 45 0d 09 09 09 09 78 | 20 3a 3d 20 30 3b 20 79 |SE.....x| := 0; y|
|00002180| 20 3a 3d 20 30 3b 20 77 | 20 3a 3d 20 30 3b 20 68 | := 0; w| := 0; h|
|00002190| 20 3a 3d 20 30 0d 09 09 | 09 45 4e 44 0d 09 09 45 | := 0...|.END...E|
|000021a0| 4e 44 0d 09 45 4e 44 20 | 47 65 74 53 65 6c 65 63 |ND..END |GetSelec|
|000021b0| 74 69 6f 6e 42 6f 75 6e | 64 73 3b 0d 09 0d 09 50 |tionBoun|ds;....P|
|000021c0| 52 4f 43 45 44 55 52 45 | 20 28 63 3a 20 53 74 64 |ROCEDURE| (c: Std|
|000021d0| 43 6f 6e 74 72 6f 6c 6c | 65 72 29 20 4d 61 72 6b |Controll|er) Mark|
|000021e0| 44 72 6f 70 54 61 72 67 | 65 74 20 28 73 72 63 2c |DropTarg|et (src,|
|000021f0| 20 64 73 74 3a 20 56 69 | 65 77 73 2e 46 72 61 6d | dst: Vi|ews.Fram|
|00002200| 65 3b 0d 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |e;......|........|
|00002210| 09 09 09 09 09 09 73 78 | 2c 20 73 79 2c 20 64 78 |......sx|, sy, dx|
|00002220| 2c 20 64 79 2c 20 77 2c | 20 68 2c 20 72 78 2c 20 |, dy, w,| h, rx, |
|00002230| 72 79 3a 20 4c 4f 4e 47 | 49 4e 54 3b 0d 09 09 09 |ry: LONG|INT;....|
|00002240| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........|
|00002250| 74 79 70 65 3a 20 53 74 | 6f 72 65 73 2e 54 79 70 |type: St|ores.Typ|
|00002260| 65 4e 61 6d 65 3b 0d 09 | 09 09 09 09 09 09 09 09 |eName;..|........|
|00002270| 09 09 09 09 09 09 09 09 | 09 09 69 73 53 69 6e 67 |........|..isSing|
|00002280| 6c 65 2c 20 73 68 6f 77 | 3a 20 42 4f 4f 4c 45 41 |le, show|: BOOLEA|
|00002290| 4e 29 3b 0d 09 09 43 4f | 4e 53 54 20 64 6d 20 3d |N);...CO|NST dm =|
|000022a0| 20 34 20 2a 20 50 6f 72 | 74 73 2e 70 6f 69 6e 74 | 4 * Por|ts.point|
|000022b0| 3b 20 64 70 20 3d 20 31 | 38 20 2a 20 50 6f 72 74 |; dp = 1|8 * Port|
|000022c0| 73 2e 70 6f 69 6e 74 3b | 0d 09 09 56 41 52 20 76 |s.point;|...VAR v|
|000022d0| 78 2c 20 76 79 2c 20 6c | 2c 20 74 2c 20 72 2c 20 |x, vy, l|, t, r, |
|000022e0| 62 3a 20 4c 4f 4e 47 49 | 4e 54 3b 20 73 63 3a 20 |b: LONGI|NT; sc: |
|000022f0| 43 6f 6e 74 61 69 6e 65 | 72 73 2e 43 6f 6e 74 72 |Containe|rs.Contr|
|00002300| 6f 6c 6c 65 72 3b 20 73 | 3a 20 56 69 65 77 73 2e |oller; s|: Views.|
|00002310| 56 69 65 77 3b 0d 09 42 | 45 47 49 4e 09 28 2a 20 |View;..B|EGIN.(* |
|00002320| 63 66 2e 20 44 72 6f 70 | 20 2a 29 0d 09 09 49 46 |cf. Drop| *)...IF|
|00002330| 20 7e 69 73 53 69 6e 67 | 6c 65 20 26 20 28 73 72 | ~isSing|le & (sr|
|00002340| 63 20 23 20 4e 49 4c 29 | 20 26 20 28 73 72 63 2e |c # NIL)| & (src.|
|00002350| 76 69 65 77 20 49 53 20 | 46 6f 72 6d 56 69 65 77 |view IS |FormView|
|00002360| 73 2e 56 69 65 77 29 20 | 54 48 45 4e 0d 09 09 09 |s.View) |THEN....|
|00002370| 76 78 20 3a 3d 20 64 78 | 20 2d 20 73 78 3b 20 76 |vx := dx| - sx; v|
|00002380| 79 20 3a 3d 20 64 79 20 | 2d 20 73 79 3b 0d 09 09 |y := dy |- sy;...|
|00002390| 09 73 63 20 3a 3d 20 73 | 72 63 2e 76 69 65 77 28 |.sc := s|rc.view(|
|000023a0| 46 6f 72 6d 56 69 65 77 | 73 2e 56 69 65 77 29 2e |FormView|s.View).|
|000023b0| 54 68 69 73 43 6f 6e 74 | 72 6f 6c 6c 65 72 28 29 |ThisCont|roller()|
|000023c0| 3b 0d 09 09 09 49 46 20 | 73 63 20 23 20 4e 49 4c |;....IF |sc # NIL|
|000023d0| 20 54 48 45 4e 0d 09 09 | 09 09 57 49 54 48 20 73 | THEN...|..WITH s|
|000023e0| 63 3a 20 43 6f 6e 74 72 | 6f 6c 6c 65 72 20 44 4f |c: Contr|oller DO|
|000023f0| 0d 09 09 09 09 09 73 63 | 2e 47 65 74 46 69 72 73 |......sc|.GetFirs|
|00002400| 74 56 69 65 77 28 43 6f | 6e 74 61 69 6e 65 72 73 |tView(Co|ntainers|
|00002410| 2e 73 65 6c 65 63 74 69 | 6f 6e 2c 20 73 29 3b 0d |.selecti|on, s);.|
|00002420| 09 09 09 09 09 57 48 49 | 4c 45 20 73 20 23 20 4e |.....WHI|LE s # N|
|00002430| 49 4c 20 44 4f 0d 09 09 | 09 09 09 09 46 6f 72 6d |IL DO...|....Form|
|00002440| 4d 6f 64 65 6c 73 2e 47 | 65 74 52 65 63 74 28 73 |Models.G|etRect(s|
|00002450| 2c 20 6c 2c 20 74 2c 20 | 72 2c 20 62 29 3b 20 77 |, l, t, |r, b); w|
|00002460| 20 3a 3d 20 72 20 2d 20 | 6c 3b 20 68 20 3a 3d 20 | := r - |l; h := |
|00002470| 62 20 2d 20 74 3b 0d 09 | 09 09 09 09 09 49 4e 43 |b - t;..|.....INC|
|00002480| 28 6c 2c 20 76 78 29 3b | 20 49 4e 43 28 74 2c 20 |(l, vx);| INC(t, |
|00002490| 76 79 29 3b 20 46 6f 72 | 6d 56 69 65 77 73 2e 52 |vy); For|mViews.R|
|000024a0| 6f 75 6e 64 54 6f 47 72 | 69 64 28 63 2e 76 69 65 |oundToGr|id(c.vie|
|000024b0| 77 2c 20 6c 2c 20 74 29 | 3b 0d 09 09 09 09 09 09 |w, l, t)|;.......|
|000024c0| 64 73 74 2e 4d 61 72 6b | 52 65 63 74 28 6c 2c 20 |dst.Mark|Rect(l, |
|000024d0| 74 2c 20 6c 20 2b 20 77 | 2c 20 74 20 2b 20 68 2c |t, l + w|, t + h,|
|000024e0| 20 30 2c 20 50 6f 72 74 | 73 2e 69 6e 76 65 72 74 | 0, Port|s.invert|
|000024f0| 2c 20 73 68 6f 77 29 3b | 0d 09 09 09 09 09 09 73 |, show);|.......s|
|00002500| 63 2e 47 65 74 4e 65 78 | 74 56 69 65 77 28 43 6f |c.GetNex|tView(Co|
|00002510| 6e 74 61 69 6e 65 72 73 | 2e 73 65 6c 65 63 74 69 |ntainers|.selecti|
|00002520| 6f 6e 2c 20 73 29 0d 09 | 09 09 09 09 45 4e 44 0d |on, s)..|....END.|
|00002530| 09 09 09 09 45 4e 44 0d | 09 09 09 45 4e 44 0d 09 |....END.|...END..|
|00002540| 09 45 4c 53 49 46 20 28 | 77 20 3e 20 30 29 20 26 |.ELSIF (|w > 0) &|
|00002550| 20 28 68 20 3e 20 30 29 | 20 54 48 45 4e 0d 09 09 | (h > 0)| THEN...|
|00002560| 09 46 6f 72 6d 56 69 65 | 77 73 2e 52 6f 75 6e 64 |.FormVie|ws.Round|
|00002570| 54 6f 47 72 69 64 28 63 | 2e 76 69 65 77 2c 20 64 |ToGrid(c|.view, d|
|00002580| 78 2c 20 64 79 29 3b 0d | 09 09 09 76 78 20 3a 3d |x, dy);.|...vx :=|
|00002590| 20 64 78 20 2d 20 72 78 | 3b 20 76 79 20 3a 3d 20 | dx - rx|; vy := |
|000025a0| 64 79 20 2d 20 72 79 3b | 0d 09 09 09 49 46 20 7e |dy - ry;|....IF ~|
|000025b0| 69 73 53 69 6e 67 6c 65 | 20 26 20 28 74 79 70 65 |isSingle| & (type|
|000025c0| 20 3d 20 22 46 6f 72 6d | 56 69 65 77 73 2e 53 74 | = "Form|Views.St|
|000025d0| 64 56 69 65 77 44 65 73 | 63 22 29 20 54 48 45 4e |dViewDes|c") THEN|
|000025e0| 0d 09 09 09 09 64 73 74 | 2e 4d 61 72 6b 52 65 63 |.....dst|.MarkRec|
|000025f0| 74 28 76 78 20 2d 20 64 | 6d 2c 20 76 79 2c 20 76 |t(vx - d|m, vy, v|
|00002600| 78 20 2b 20 64 70 2c 20 | 76 79 20 2b 20 64 73 74 |x + dp, |vy + dst|
|00002610| 2e 75 6e 69 74 2c 20 30 | 2c 20 50 6f 72 74 73 2e |.unit, 0|, Ports.|
|00002620| 69 6e 76 65 72 74 2c 20 | 73 68 6f 77 29 3b 0d 09 |invert, |show);..|
|00002630| 09 09 09 64 73 74 2e 4d | 61 72 6b 52 65 63 74 28 |...dst.M|arkRect(|
|00002640| 76 78 2c 20 76 79 20 2d | 20 64 6d 2c 20 76 78 20 |vx, vy -| dm, vx |
|00002650| 2b 20 64 73 74 2e 75 6e | 69 74 2c 20 76 79 20 2b |+ dst.un|it, vy +|
|00002660| 20 64 70 2c 20 30 2c 20 | 50 6f 72 74 73 2e 69 6e | dp, 0, |Ports.in|
|00002670| 76 65 72 74 2c 20 73 68 | 6f 77 29 3b 0d 09 09 09 |vert, sh|ow);....|
|00002680| 09 49 4e 43 28 76 78 2c | 20 77 29 3b 20 49 4e 43 |.INC(vx,| w); INC|
|00002690| 28 76 79 2c 20 68 29 3b | 0d 09 09 09 09 64 73 74 |(vy, h);|.....dst|
|000026a0| 2e 4d 61 72 6b 52 65 63 | 74 28 76 78 20 2d 20 64 |.MarkRec|t(vx - d|
|000026b0| 70 2c 20 76 79 2c 20 76 | 78 20 2b 20 64 6d 2c 20 |p, vy, v|x + dm, |
|000026c0| 76 79 20 2b 20 64 73 74 | 2e 75 6e 69 74 2c 20 30 |vy + dst|.unit, 0|
|000026d0| 2c 20 50 6f 72 74 73 2e | 69 6e 76 65 72 74 2c 20 |, Ports.|invert, |
|000026e0| 73 68 6f 77 29 3b 0d 09 | 09 09 09 64 73 74 2e 4d |show);..|...dst.M|
|000026f0| 61 72 6b 52 65 63 74 28 | 76 78 2c 20 76 79 20 2d |arkRect(|vx, vy -|
|00002700| 20 64 70 2c 20 76 78 20 | 2b 20 64 73 74 2e 75 6e | dp, vx |+ dst.un|
|00002710| 69 74 2c 20 76 79 20 2b | 20 64 6d 2c 20 30 2c 20 |it, vy +| dm, 0, |
|00002720| 50 6f 72 74 73 2e 69 6e | 76 65 72 74 2c 20 73 68 |Ports.in|vert, sh|
|00002730| 6f 77 29 0d 09 09 09 45 | 4c 53 45 0d 09 09 09 09 |ow)....E|LSE.....|
|00002740| 64 73 74 2e 4d 61 72 6b | 52 65 63 74 28 76 78 2c |dst.Mark|Rect(vx,|
|00002750| 20 76 79 2c 20 76 78 20 | 2b 20 77 2c 20 76 79 20 | vy, vx |+ w, vy |
|00002760| 2b 20 68 2c 20 30 2c 20 | 50 6f 72 74 73 2e 69 6e |+ h, 0, |Ports.in|
|00002770| 76 65 72 74 2c 20 73 68 | 6f 77 29 0d 09 09 09 45 |vert, sh|ow)....E|
|00002780| 4e 44 0d 09 09 45 4c 53 | 45 0d 09 09 09 46 6f 72 |ND...ELS|E....For|
|00002790| 6d 56 69 65 77 73 2e 52 | 6f 75 6e 64 54 6f 47 72 |mViews.R|oundToGr|
|000027a0| 69 64 28 63 2e 76 69 65 | 77 2c 20 64 78 2c 20 64 |id(c.vie|w, dx, d|
|000027b0| 79 29 3b 0d 09 09 09 64 | 73 74 2e 4d 61 72 6b 52 |y);....d|st.MarkR|
|000027c0| 65 63 74 28 64 78 20 2d | 20 64 6d 2c 20 64 79 2c |ect(dx -| dm, dy,|
|000027d0| 20 64 78 20 2b 20 64 70 | 2c 20 64 79 20 2b 20 64 | dx + dp|, dy + d|
|000027e0| 73 74 2e 75 6e 69 74 2c | 20 30 2c 20 50 6f 72 74 |st.unit,| 0, Port|
|000027f0| 73 2e 69 6e 76 65 72 74 | 2c 20 73 68 6f 77 29 3b |s.invert|, show);|
|00002800| 0d 09 09 09 64 73 74 2e | 4d 61 72 6b 52 65 63 74 |....dst.|MarkRect|
|00002810| 28 64 78 2c 20 64 79 20 | 2d 20 64 6d 2c 20 64 78 |(dx, dy |- dm, dx|
|00002820| 20 2b 20 64 73 74 2e 75 | 6e 69 74 2c 20 64 79 20 | + dst.u|nit, dy |
|00002830| 2b 20 64 70 2c 20 30 2c | 20 50 6f 72 74 73 2e 69 |+ dp, 0,| Ports.i|
|00002840| 6e 76 65 72 74 2c 20 73 | 68 6f 77 29 0d 09 09 45 |nvert, s|how)...E|
|00002850| 4e 44 0d 09 45 4e 44 20 | 4d 61 72 6b 44 72 6f 70 |ND..END |MarkDrop|
|00002860| 54 61 72 67 65 74 3b 0d | 0d 09 50 52 4f 43 45 44 |Target;.|..PROCED|
|00002870| 55 52 45 20 28 63 3a 20 | 53 74 64 43 6f 6e 74 72 |URE (c: |StdContr|
|00002880| 6f 6c 6c 65 72 29 20 54 | 72 61 63 6b 4d 61 72 6b |oller) T|rackMark|
|00002890| 73 20 28 66 3a 20 56 69 | 65 77 73 2e 46 72 61 6d |s (f: Vi|ews.Fram|
|000028a0| 65 3b 20 78 2c 20 79 3a | 20 4c 4f 4e 47 49 4e 54 |e; x, y:| LONGINT|
|000028b0| 3b 0d 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |;.......|........|
|000028c0| 09 09 09 09 09 75 6e 69 | 74 73 2c 20 65 78 74 65 |.....uni|ts, exte|
|000028d0| 6e 64 2c 20 61 64 64 3a | 20 42 4f 4f 4c 45 41 4e |nd, add:| BOOLEAN|
|000028e0| 29 3b 0d 09 09 56 41 52 | 20 64 78 2c 20 64 79 2c |);...VAR| dx, dy,|
|000028f0| 20 78 30 2c 20 79 30 2c | 20 64 78 30 2c 20 64 79 | x0, y0,| dx0, dy|
|00002900| 30 3a 20 4c 4f 4e 47 49 | 4e 54 3b 20 69 73 44 6f |0: LONGI|NT; isDo|
|00002910| 77 6e 3a 20 42 4f 4f 4c | 45 41 4e 3b 20 68 3a 20 |wn: BOOL|EAN; h: |
|00002920| 56 69 65 77 73 2e 56 69 | 65 77 3b 20 6d 3a 20 53 |Views.Vi|ew; m: S|
|00002930| 45 54 3b 0d 0d 09 09 50 | 52 4f 43 45 44 55 52 45 |ET;....P|ROCEDURE|
|00002940| 20 49 6e 76 65 72 74 52 | 65 63 74 20 28 66 3a 20 | InvertR|ect (f: |
|00002950| 56 69 65 77 73 2e 46 72 | 61 6d 65 3b 20 78 2c 20 |Views.Fr|ame; x, |
|00002960| 79 2c 20 64 78 2c 20 64 | 79 3a 20 4c 4f 4e 47 49 |y, dx, d|y: LONGI|
|00002970| 4e 54 29 3b 0d 09 09 09 | 56 41 52 20 6c 2c 20 74 |NT);....|VAR l, t|
|00002980| 2c 20 72 2c 20 62 3a 20 | 4c 4f 4e 47 49 4e 54 3b |, r, b: |LONGINT;|
|00002990| 0d 09 09 42 45 47 49 4e | 0d 09 09 09 49 46 20 64 |...BEGIN|....IF d|
|000029a0| 78 20 3e 3d 20 30 20 54 | 48 45 4e 20 6c 20 3a 3d |x >= 0 T|HEN l :=|
|000029b0| 20 78 3b 20 72 20 3a 3d | 20 78 20 2b 20 64 78 20 | x; r :=| x + dx |
|000029c0| 45 4c 53 45 20 6c 20 3a | 3d 20 78 20 2b 20 64 78 |ELSE l :|= x + dx|
|000029d0| 3b 20 72 20 3a 3d 20 78 | 20 45 4e 44 3b 0d 09 09 |; r := x| END;...|
|000029e0| 09 49 46 20 64 79 20 3e | 3d 20 30 20 54 48 45 4e |.IF dy >|= 0 THEN|
|000029f0| 20 74 20 3a 3d 20 79 3b | 20 62 20 3a 3d 20 79 20 | t := y;| b := y |
|00002a00| 2b 20 64 79 20 45 4c 53 | 45 20 74 20 3a 3d 20 79 |+ dy ELS|E t := y|
|00002a10| 20 2b 20 64 79 3b 20 62 | 20 3a 3d 20 79 20 45 4e | + dy; b| := y EN|
|00002a20| 44 3b 0d 09 09 09 66 2e | 4d 61 72 6b 52 65 63 74 |D;....f.|MarkRect|
|00002a30| 28 6c 2c 20 74 2c 20 72 | 2c 20 62 2c 20 30 2c 20 |(l, t, r|, b, 0, |
|00002a40| 50 6f 72 74 73 2e 64 69 | 6d 35 30 2c 20 54 52 55 |Ports.di|m50, TRU|
|00002a50| 45 29 0d 09 09 45 4e 44 | 20 49 6e 76 65 72 74 52 |E)...END| InvertR|
|00002a60| 65 63 74 3b 0d 0d 09 09 | 50 52 4f 43 45 44 55 52 |ect;....|PROCEDUR|
|00002a70| 45 20 53 65 6c 65 63 74 | 41 72 65 61 20 28 63 3a |E Select|Area (c:|
|00002a80| 20 53 74 64 43 6f 6e 74 | 72 6f 6c 6c 65 72 3b 20 | StdCont|roller; |
|00002a90| 6c 2c 20 74 2c 20 72 2c | 20 62 3a 20 4c 4f 4e 47 |l, t, r,| b: LONG|
|00002aa0| 49 4e 54 3b 20 74 6f 67 | 67 6c 65 3a 20 42 4f 4f |INT; tog|gle: BOO|
|00002ab0| 4c 45 41 4e 29 3b 0d 09 | 09 09 56 41 52 20 68 3a |LEAN);..|..VAR h:|
|00002ac0| 20 4c 4f 4e 47 49 4e 54 | 3b 20 73 3a 20 46 6f 72 | LONGINT|; s: For|
|00002ad0| 6d 4d 6f 64 65 6c 73 2e | 52 65 61 64 65 72 3b 20 |mModels.|Reader; |
|00002ae0| 76 3a 20 56 69 65 77 73 | 2e 56 69 65 77 3b 20 70 |v: Views|.View; p|
|00002af0| 2c 20 71 3a 20 4c 69 73 | 74 3b 20 65 6d 70 74 79 |, q: Lis|t; empty|
|00002b00| 3a 20 42 4f 4f 4c 45 41 | 4e 3b 0d 09 09 42 45 47 |: BOOLEA|N;...BEG|
|00002b10| 49 4e 0d 09 09 09 49 46 | 20 6c 20 3e 20 72 20 54 |IN....IF| l > r T|
|00002b20| 48 45 4e 20 68 20 3a 3d | 20 6c 3b 20 6c 20 3a 3d |HEN h :=| l; l :=|
|00002b30| 20 72 3b 20 72 20 3a 3d | 20 68 20 45 4e 44 3b 0d | r; r :=| h END;.|
|00002b40| 09 09 09 49 46 20 74 20 | 3e 20 62 20 54 48 45 4e |...IF t |> b THEN|
|00002b50| 20 68 20 3a 3d 20 74 3b | 20 74 20 3a 3d 20 62 3b | h := t;| t := b;|
|00002b60| 20 62 20 3a 3d 20 68 20 | 45 4e 44 3b 0d 09 09 09 | b := h |END;....|
|00002b70| 73 20 3a 3d 20 63 2e 66 | 6f 72 6d 2e 4e 65 77 52 |s := c.f|orm.NewR|
|00002b80| 65 61 64 65 72 28 63 2e | 72 65 61 64 65 72 29 3b |eader(c.|reader);|
|00002b90| 20 63 2e 72 65 61 64 65 | 72 20 3a 3d 20 73 3b 0d | c.reade|r := s;.|
|00002ba0| 09 09 09 73 2e 53 65 74 | 28 4e 49 4c 29 3b 20 73 |...s.Set|(NIL); s|
|00002bb0| 2e 52 65 61 64 56 69 65 | 77 28 76 29 3b 20 70 20 |.ReadVie|w(v); p |
|00002bc0| 3a 3d 20 4e 49 4c 3b 20 | 65 6d 70 74 79 20 3a 3d |:= NIL; |empty :=|
|00002bd0| 20 63 2e 73 65 6c 20 3d | 20 4e 49 4c 3b 0d 09 09 | c.sel =| NIL;...|
|00002be0| 09 57 48 49 4c 45 20 76 | 20 23 20 4e 49 4c 20 44 |.WHILE v| # NIL D|
|00002bf0| 4f 0d 09 09 09 09 49 46 | 20 28 73 2e 6c 20 3c 20 |O.....IF| (s.l < |
|00002c00| 72 29 20 26 20 28 73 2e | 74 20 3c 20 62 29 20 26 |r) & (s.|t < b) &|
|00002c10| 20 28 73 2e 72 20 3e 20 | 6c 29 20 26 20 28 73 2e | (s.r > |l) & (s.|
|00002c20| 62 20 3e 20 74 29 20 54 | 48 45 4e 0d 09 09 09 09 |b > t) T|HEN.....|
|00002c30| 09 49 46 20 74 6f 67 67 | 6c 65 20 54 48 45 4e 20 |.IF togg|le THEN |
|00002c40| 54 6f 67 67 6c 65 28 63 | 2c 20 76 29 0d 09 09 09 |Toggle(c|, v)....|
|00002c50| 09 09 45 4c 53 49 46 20 | 7e 65 6d 70 74 79 20 54 |..ELSIF |~empty T|
|00002c60| 48 45 4e 20 63 2e 53 65 | 6c 65 63 74 28 76 29 0d |HEN c.Se|lect(v).|
|00002c70| 09 09 09 09 09 45 4c 53 | 45 20 4e 45 57 28 71 29 |.....ELS|E NEW(q)|
|00002c80| 3b 20 71 2e 6e 65 78 74 | 20 3a 3d 20 70 3b 20 70 |; q.next| := p; p|
|00002c90| 20 3a 3d 20 71 3b 20 71 | 2e 76 69 65 77 20 3a 3d | := q; q|.view :=|
|00002ca0| 20 76 0d 09 09 09 09 09 | 45 4e 44 0d 09 09 09 09 | v......|END.....|
|00002cb0| 45 4e 44 3b 0d 09 09 09 | 09 73 2e 52 65 61 64 56 |END;....|.s.ReadV|
|00002cc0| 69 65 77 28 76 29 0d 09 | 09 09 45 4e 44 3b 0d 09 |iew(v)..|..END;..|
|00002cd0| 09 09 28 2a 20 74 68 69 | 73 20 6f 70 74 69 6d 69 |..(* thi|s optimi|
|00002ce0| 7a 61 74 69 6f 6e 20 70 | 72 65 76 65 6e 74 73 20 |zation p|revents |
|00002cf0| 74 68 65 20 61 70 70 65 | 61 72 61 6e 63 65 20 6f |the appe|arance o|
|00002d00| 66 20 61 20 74 65 6d 70 | 6f 72 61 72 79 20 73 69 |f a temp|orary si|
|00002d10| 6e 67 6c 65 74 6f 6e 20 | 2a 29 0d 09 09 09 49 46 |ngleton |*)....IF|
|00002d20| 20 7e 74 6f 67 67 6c 65 | 20 26 20 65 6d 70 74 79 | ~toggle| & empty|
|00002d30| 20 54 48 45 4e 20 63 2e | 53 65 74 53 65 6c 65 63 | THEN c.|SetSelec|
|00002d40| 74 69 6f 6e 28 70 29 20 | 45 4e 44 0d 09 09 45 4e |tion(p) |END...EN|
|00002d50| 44 20 53 65 6c 65 63 74 | 41 72 65 61 3b 0d 0d 09 |D Select|Area;...|
|00002d60| 42 45 47 49 4e 0d 09 09 | 64 78 20 3a 3d 20 30 3b |BEGIN...|dx := 0;|
|00002d70| 20 64 79 20 3a 3d 20 30 | 3b 09 28 2a 20 76 65 63 | dy := 0|;.(* vec|
|00002d80| 74 6f 72 20 66 72 6f 6d | 20 28 78 2c 20 79 29 20 |tor from| (x, y) |
|00002d90| 2a 29 0d 09 09 49 6e 76 | 65 72 74 52 65 63 74 28 |*)...Inv|ertRect(|
|00002da0| 66 2c 20 78 2c 20 79 2c | 20 64 78 2c 20 64 79 29 |f, x, y,| dx, dy)|
|00002db0| 3b 0d 09 09 52 45 50 45 | 41 54 0d 09 09 09 66 2e |;...REPE|AT....f.|
|00002dc0| 49 6e 70 75 74 28 78 30 | 2c 20 79 30 2c 20 6d 2c |Input(x0|, y0, m,|
|00002dd0| 20 69 73 44 6f 77 6e 29 | 3b 0d 09 09 09 64 78 30 | isDown)|;....dx0|
|00002de0| 20 3a 3d 20 78 30 20 2d | 20 78 3b 20 64 79 30 20 | := x0 -| x; dy0 |
|00002df0| 3a 3d 20 79 30 20 2d 20 | 79 3b 0d 09 09 09 49 46 |:= y0 - |y;....IF|
|00002e00| 20 28 64 78 30 20 23 20 | 64 78 29 20 4f 52 20 28 | (dx0 # |dx) OR (|
|00002e10| 64 79 30 20 23 20 64 79 | 29 20 54 48 45 4e 0d 09 |dy0 # dy|) THEN..|
|00002e20| 09 09 09 49 6e 76 65 72 | 74 52 65 63 74 28 66 2c |...Inver|tRect(f,|
|00002e30| 20 78 2c 20 79 2c 20 64 | 78 2c 20 64 79 29 3b 0d | x, y, d|x, dy);.|
|00002e40| 09 09 09 09 64 78 20 3a | 3d 20 64 78 30 3b 20 64 |....dx :|= dx0; d|
|00002e50| 79 20 3a 3d 20 64 79 30 | 3b 0d 09 09 09 09 49 6e |y := dy0|;.....In|
|00002e60| 76 65 72 74 52 65 63 74 | 28 66 2c 20 78 2c 20 79 |vertRect|(f, x, y|
|00002e70| 2c 20 64 78 2c 20 64 79 | 29 0d 09 09 09 45 4e 44 |, dx, dy|)....END|
|00002e80| 0d 09 09 55 4e 54 49 4c | 20 7e 69 73 44 6f 77 6e |...UNTIL| ~isDown|
|00002e90| 3b 0d 09 09 49 6e 76 65 | 72 74 52 65 63 74 28 66 |;...Inve|rtRect(f|
|00002ea0| 2c 20 78 2c 20 79 2c 20 | 64 78 2c 20 64 79 29 3b |, x, y, |dx, dy);|
|00002eb0| 0d 09 09 63 2e 6c 61 73 | 74 58 20 3a 3d 20 78 30 |...c.las|tX := x0|
|00002ec0| 3b 20 63 2e 6c 61 73 74 | 59 20 3a 3d 20 79 30 3b |; c.last|Y := y0;|
|00002ed0| 0d 09 09 49 46 20 28 64 | 78 20 23 20 30 29 20 4f |...IF (d|x # 0) O|
|00002ee0| 52 20 28 64 79 20 23 20 | 30 29 20 54 48 45 4e 0d |R (dy # |0) THEN.|
|00002ef0| 09 09 09 53 65 6c 65 63 | 74 41 72 65 61 28 63 2c |...Selec|tArea(c,|
|00002f00| 20 78 2c 20 79 2c 20 78 | 20 2b 20 64 78 2c 20 79 | x, y, x| + dx, y|
|00002f10| 20 2b 20 64 79 2c 20 65 | 78 74 65 6e 64 20 4f 52 | + dy, e|xtend OR|
|00002f20| 20 61 64 64 29 0d 09 09 | 45 4c 53 45 0d 09 09 09 | add)...|ELSE....|
|00002f30| 68 20 3a 3d 20 63 2e 66 | 6f 72 6d 2e 56 69 65 77 |h := c.f|orm.View|
|00002f40| 41 74 28 78 2c 20 79 29 | 3b 0d 09 09 09 49 46 20 |At(x, y)|;....IF |
|00002f50| 68 20 23 20 4e 49 4c 20 | 54 48 45 4e 0d 09 09 09 |h # NIL |THEN....|
|00002f60| 09 49 46 20 65 78 74 65 | 6e 64 20 4f 52 20 61 64 |.IF exte|nd OR ad|
|00002f70| 64 20 54 48 45 4e 20 54 | 6f 67 67 6c 65 28 63 2c |d THEN T|oggle(c,|
|00002f80| 20 68 29 20 45 4c 53 45 | 20 63 2e 53 65 6c 65 63 | h) ELSE| c.Selec|
|00002f90| 74 28 68 29 20 45 4e 44 | 0d 09 09 09 45 4e 44 0d |t(h) END|....END.|
|00002fa0| 09 09 45 4e 44 0d 09 45 | 4e 44 20 54 72 61 63 6b |..END..E|ND Track|
|00002fb0| 4d 61 72 6b 73 3b 0d 0d | 09 50 52 4f 43 45 44 55 |Marks;..|.PROCEDU|
|00002fc0| 52 45 20 28 63 3a 20 53 | 74 64 43 6f 6e 74 72 6f |RE (c: S|tdContro|
|00002fd0| 6c 6c 65 72 29 20 52 65 | 73 69 7a 65 20 28 76 69 |ller) Re|size (vi|
|00002fe0| 65 77 3a 20 56 69 65 77 | 73 2e 56 69 65 77 3b 20 |ew: View|s.View; |
|00002ff0| 6c 2c 20 74 2c 20 72 2c | 20 62 3a 20 4c 4f 4e 47 |l, t, r,| b: LONG|
|00003000| 49 4e 54 29 3b 0d 09 42 | 45 47 49 4e 0d 09 09 63 |INT);..B|EGIN...c|
|00003010| 2e 66 6f 72 6d 2e 52 65 | 73 69 7a 65 28 76 69 65 |.form.Re|size(vie|
|00003020| 77 2c 20 6c 2c 20 74 2c | 20 72 2c 20 62 29 0d 09 |w, l, t,| r, b)..|
|00003030| 45 4e 44 20 52 65 73 69 | 7a 65 3b 0d 0d 09 50 52 |END Resi|ze;...PR|
|00003040| 4f 43 45 44 55 52 45 20 | 28 63 3a 20 53 74 64 43 |OCEDURE |(c: StdC|
|00003050| 6f 6e 74 72 6f 6c 6c 65 | 72 29 20 44 65 6c 65 74 |ontrolle|r) Delet|
|00003060| 65 53 65 6c 65 63 74 69 | 6f 6e 3b 0d 09 09 56 41 |eSelecti|on;...VA|
|00003070| 52 20 73 63 72 69 70 74 | 3a 20 44 6f 6d 61 69 6e |R script|: Domain|
|00003080| 73 2e 4f 70 65 72 61 74 | 69 6f 6e 3b 20 68 3a 20 |s.Operat|ion; h: |
|00003090| 4c 69 73 74 3b 0d 09 42 | 45 47 49 4e 0d 09 09 4d |List;..B|EGIN...M|
|000030a0| 6f 64 65 6c 73 2e 42 65 | 67 69 6e 53 63 72 69 70 |odels.Be|ginScrip|
|000030b0| 74 28 63 2e 66 6f 72 6d | 2c 20 22 23 53 79 73 74 |t(c.form|, "#Syst|
|000030c0| 65 6d 3a 44 65 6c 65 74 | 69 6f 6e 22 2c 20 73 63 |em:Delet|ion", sc|
|000030d0| 72 69 70 74 29 3b 0d 09 | 09 68 20 3a 3d 20 63 2e |ript);..|.h := c.|
|000030e0| 73 65 6c 3b 20 57 48 49 | 4c 45 20 68 20 23 20 4e |sel; WHI|LE h # N|
|000030f0| 49 4c 20 44 4f 20 63 2e | 66 6f 72 6d 2e 44 65 6c |IL DO c.|form.Del|
|00003100| 65 74 65 28 68 2e 76 69 | 65 77 29 3b 20 68 20 3a |ete(h.vi|ew); h :|
|00003110| 3d 20 68 2e 6e 65 78 74 | 20 45 4e 44 3b 0d 09 09 |= h.next| END;...|
|00003120| 4d 6f 64 65 6c 73 2e 45 | 6e 64 53 63 72 69 70 74 |Models.E|ndScript|
|00003130| 28 63 2e 66 6f 72 6d 2c | 20 73 63 72 69 70 74 29 |(c.form,| script)|
|00003140| 0d 09 45 4e 44 20 44 65 | 6c 65 74 65 53 65 6c 65 |..END De|leteSele|
|00003150| 63 74 69 6f 6e 3b 0d 0d | 09 50 52 4f 43 45 44 55 |ction;..|.PROCEDU|
|00003160| 52 45 20 28 63 3a 20 53 | 74 64 43 6f 6e 74 72 6f |RE (c: S|tdContro|
|00003170| 6c 6c 65 72 29 20 4d 6f | 76 65 4c 6f 63 61 6c 53 |ller) Mo|veLocalS|
|00003180| 65 6c 65 63 74 69 6f 6e | 20 28 73 72 63 2c 20 64 |election| (src, d|
|00003190| 73 74 3a 20 56 69 65 77 | 73 2e 46 72 61 6d 65 3b |st: View|s.Frame;|
|000031a0| 20 73 78 2c 20 73 79 2c | 0d 09 09 09 09 09 09 09 | sx, sy,|........|
|000031b0| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 64 |........|.......d|
|000031c0| 78 2c 20 64 79 3a 20 4c | 4f 4e 47 49 4e 54 29 3b |x, dy: L|ONGINT);|
|000031d0| 0d 09 09 09 56 41 52 20 | 73 63 72 69 70 74 3a 20 |....VAR |script: |
|000031e0| 44 6f 6d 61 69 6e 73 2e | 4f 70 65 72 61 74 69 6f |Domains.|Operatio|
|000031f0| 6e 3b 20 73 65 6c 2c 20 | 68 3a 20 4c 69 73 74 3b |n; sel, |h: List;|
|00003200| 0d 09 42 45 47 49 4e 0d | 09 09 64 78 20 3a 3d 20 |..BEGIN.|..dx := |
|00003210| 64 78 20 2d 20 73 78 3b | 20 64 79 20 3a 3d 20 64 |dx - sx;| dy := d|
|00003220| 79 20 2d 20 73 79 3b 0d | 09 09 49 46 20 28 64 78 |y - sy;.|..IF (dx|
|00003230| 20 23 20 30 29 20 4f 52 | 20 28 64 79 20 23 20 30 | # 0) OR| (dy # 0|
|00003240| 29 20 54 48 45 4e 0d 09 | 09 09 46 6f 72 6d 56 69 |) THEN..|..FormVi|
|00003250| 65 77 73 2e 52 6f 75 6e | 64 54 6f 47 72 69 64 28 |ews.Roun|dToGrid(|
|00003260| 63 2e 76 69 65 77 2c 20 | 64 78 2c 20 64 79 29 3b |c.view, |dx, dy);|
|00003270| 0d 09 09 09 73 65 6c 20 | 3a 3d 20 63 2e 47 65 74 |....sel |:= c.Get|
|00003280| 53 65 6c 65 63 74 69 6f | 6e 28 29 3b 0d 09 09 09 |Selectio|n();....|
|00003290| 4d 6f 64 65 6c 73 2e 42 | 65 67 69 6e 53 63 72 69 |Models.B|eginScri|
|000032a0| 70 74 28 63 2e 66 6f 72 | 6d 2c 20 22 23 53 79 73 |pt(c.for|m, "#Sys|
|000032b0| 74 65 6d 3a 4d 6f 76 69 | 6e 67 22 2c 20 73 63 72 |tem:Movi|ng", scr|
|000032c0| 69 70 74 29 3b 0d 09 09 | 09 68 20 3a 3d 20 73 65 |ipt);...|.h := se|
|000032d0| 6c 3b 20 57 48 49 4c 45 | 20 68 20 23 20 4e 49 4c |l; WHILE| h # NIL|
|000032e0| 20 44 4f 20 63 2e 66 6f | 72 6d 2e 4d 6f 76 65 28 | DO c.fo|rm.Move(|
|000032f0| 68 2e 76 69 65 77 2c 20 | 64 78 2c 20 64 79 29 3b |h.view, |dx, dy);|
|00003300| 20 68 20 3a 3d 20 68 2e | 6e 65 78 74 20 45 4e 44 | h := h.|next END|
|00003310| 3b 0d 09 09 09 4d 6f 64 | 65 6c 73 2e 45 6e 64 53 |;....Mod|els.EndS|
|00003320| 63 72 69 70 74 28 63 2e | 66 6f 72 6d 2c 20 73 63 |cript(c.|form, sc|
|00003330| 72 69 70 74 29 3b 0d 09 | 09 09 63 2e 53 65 74 53 |ript);..|..c.SetS|
|00003340| 65 6c 65 63 74 69 6f 6e | 28 73 65 6c 29 0d 09 09 |election|(sel)...|
|00003350| 45 4e 44 0d 09 45 4e 44 | 20 4d 6f 76 65 4c 6f 63 |END..END| MoveLoc|
|00003360| 61 6c 53 65 6c 65 63 74 | 69 6f 6e 3b 0d 0d 09 50 |alSelect|ion;...P|
|00003370| 52 4f 43 45 44 55 52 45 | 20 28 63 3a 20 53 74 64 |ROCEDURE| (c: Std|
|00003380| 43 6f 6e 74 72 6f 6c 6c | 65 72 29 20 43 6f 70 79 |Controll|er) Copy|
|00003390| 4c 6f 63 61 6c 53 65 6c | 65 63 74 69 6f 6e 20 28 |LocalSel|ection (|
|000033a0| 73 72 63 2c 20 64 73 74 | 3a 20 56 69 65 77 73 2e |src, dst|: Views.|
|000033b0| 46 72 61 6d 65 3b 20 73 | 78 2c 20 73 79 2c 0d 09 |Frame; s|x, sy,..|
|000033c0| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........|
|000033d0| 09 09 09 09 09 64 78 2c | 20 64 79 3a 20 4c 4f 4e |.....dx,| dy: LON|
|000033e0| 47 49 4e 54 29 3b 0d 09 | 09 56 41 52 20 73 63 72 |GINT);..|.VAR scr|
|000033f0| 69 70 74 3a 20 44 6f 6d | 61 69 6e 73 2e 4f 70 65 |ipt: Dom|ains.Ope|
|00003400| 72 61 74 69 6f 6e 3b 20 | 71 3a 20 56 69 65 77 73 |ration; |q: Views|
|00003410| 2e 56 69 65 77 3b 20 68 | 2c 20 73 2c 20 74 3a 20 |.View; h|, s, t: |
|00003420| 4c 69 73 74 3b 0d 09 42 | 45 47 49 4e 0d 09 09 64 |List;..B|EGIN...d|
|00003430| 78 20 3a 3d 20 64 78 20 | 2d 20 73 78 3b 20 64 79 |x := dx |- sx; dy|
|00003440| 20 3a 3d 20 64 79 20 2d | 20 73 79 3b 0d 09 09 49 | := dy -| sy;...I|
|00003450| 46 20 28 64 78 20 23 20 | 30 29 20 4f 52 20 28 64 |F (dx # |0) OR (d|
|00003460| 79 20 23 20 30 29 20 54 | 48 45 4e 0d 09 09 09 46 |y # 0) T|HEN....F|
|00003470| 6f 72 6d 56 69 65 77 73 | 2e 52 6f 75 6e 64 54 6f |ormViews|.RoundTo|
|00003480| 47 72 69 64 28 63 2e 76 | 69 65 77 2c 20 64 78 2c |Grid(c.v|iew, dx,|
|00003490| 20 64 79 29 3b 0d 09 09 | 09 4d 6f 64 65 6c 73 2e | dy);...|.Models.|
|000034a0| 42 65 67 69 6e 53 63 72 | 69 70 74 28 63 2e 66 6f |BeginScr|ipt(c.fo|
|000034b0| 72 6d 2c 20 22 23 53 79 | 73 74 65 6d 3a 43 6f 70 |rm, "#Sy|stem:Cop|
|000034c0| 79 69 6e 67 22 2c 20 73 | 63 72 69 70 74 29 3b 0d |ying", s|cript);.|
|000034d0| 09 09 09 68 20 3a 3d 20 | 63 2e 47 65 74 53 65 6c |...h := |c.GetSel|
|000034e0| 65 63 74 69 6f 6e 28 29 | 3b 20 73 20 3a 3d 20 4e |ection()|; s := N|
|000034f0| 49 4c 3b 0d 09 09 09 57 | 48 49 4c 45 20 68 20 23 |IL;....W|HILE h #|
|00003500| 20 4e 49 4c 20 44 4f 0d | 09 09 09 09 71 20 3a 3d | NIL DO.|....q :=|
|00003510| 20 68 2e 76 69 65 77 3b | 20 63 2e 66 6f 72 6d 2e | h.view;| c.form.|
|00003520| 43 6f 70 79 28 71 2c 20 | 64 78 2c 20 64 79 29 3b |Copy(q, |dx, dy);|
|00003530| 0d 09 09 09 09 4e 45 57 | 28 74 29 3b 20 74 2e 6e |.....NEW|(t); t.n|
|00003540| 65 78 74 20 3a 3d 20 73 | 3b 20 73 20 3a 3d 20 74 |ext := s|; s := t|
|00003550| 3b 20 74 2e 76 69 65 77 | 20 3a 3d 20 71 3b 0d 09 |; t.view| := q;..|
|00003560| 09 09 09 68 20 3a 3d 20 | 68 2e 6e 65 78 74 0d 09 |...h := |h.next..|
|00003570| 09 09 45 4e 44 3b 0d 09 | 09 09 4d 6f 64 65 6c 73 |..END;..|..Models|
|00003580| 2e 45 6e 64 53 63 72 69 | 70 74 28 63 2e 66 6f 72 |.EndScri|pt(c.for|
|00003590| 6d 2c 20 73 63 72 69 70 | 74 29 3b 0d 09 09 09 63 |m, scrip|t);....c|
|000035a0| 2e 53 65 74 53 65 6c 65 | 63 74 69 6f 6e 28 73 29 |.SetSele|ction(s)|
|000035b0| 0d 09 09 45 4e 44 0d 09 | 45 4e 44 20 43 6f 70 79 |...END..|END Copy|
|000035c0| 4c 6f 63 61 6c 53 65 6c | 65 63 74 69 6f 6e 3b 0d |LocalSel|ection;.|
|000035d0| 0d 09 50 52 4f 43 45 44 | 55 52 45 20 28 63 3a 20 |..PROCED|URE (c: |
|000035e0| 53 74 64 43 6f 6e 74 72 | 6f 6c 6c 65 72 29 20 53 |StdContr|oller) S|
|000035f0| 65 6c 65 63 74 69 6f 6e | 43 6f 70 79 20 28 29 3a |election|Copy ():|
|00003600| 20 43 6f 6e 74 61 69 6e | 65 72 73 2e 4d 6f 64 65 | Contain|ers.Mode|
|00003610| 6c 3b 0d 09 09 56 41 52 | 20 66 3a 20 46 6f 72 6d |l;...VAR| f: Form|
|00003620| 4d 6f 64 65 6c 73 2e 4d | 6f 64 65 6c 3b 20 70 3a |Models.M|odel; p:|
|00003630| 20 4c 69 73 74 3b 20 77 | 2c 20 68 2c 20 64 78 2c | List; w|, h, dx,|
|00003640| 20 64 79 2c 20 6c 2c 20 | 74 2c 20 72 2c 20 62 3a | dy, l, |t, r, b:|
|00003650| 20 4c 4f 4e 47 49 4e 54 | 3b 20 73 74 3a 20 53 74 | LONGINT|; st: St|
|00003660| 6f 72 65 73 2e 53 74 6f | 72 65 3b 0d 0d 09 09 50 |ores.Sto|re;....P|
|00003670| 52 4f 43 45 44 55 52 45 | 20 47 65 74 4f 66 66 73 |ROCEDURE| GetOffs|
|00003680| 65 74 20 28 66 3a 20 46 | 6f 72 6d 4d 6f 64 65 6c |et (f: F|ormModel|
|00003690| 73 2e 4d 6f 64 65 6c 3b | 20 70 3a 20 4c 69 73 74 |s.Model;| p: List|
|000036a0| 3b 20 62 6f 72 64 65 72 | 3a 20 4c 4f 4e 47 49 4e |; border|: LONGIN|
|000036b0| 54 3b 20 56 41 52 20 64 | 78 2c 20 64 79 3a 20 4c |T; VAR d|x, dy: L|
|000036c0| 4f 4e 47 49 4e 54 29 3b | 0d 09 09 09 56 41 52 20 |ONGINT);|....VAR |
|000036d0| 6c 2c 20 74 2c 20 76 6c | 2c 20 76 74 2c 20 76 72 |l, t, vl|, vt, vr|
|000036e0| 2c 20 76 62 3a 20 4c 4f | 4e 47 49 4e 54 3b 0d 09 |, vb: LO|NGINT;..|
|000036f0| 09 42 45 47 49 4e 0d 09 | 09 09 49 46 20 70 20 23 |.BEGIN..|..IF p #|
|00003700| 20 4e 49 4c 20 54 48 45 | 4e 0d 09 09 09 09 6c 20 | NIL THE|N.....l |
|00003710| 3a 3d 20 4d 41 58 28 4c | 4f 4e 47 49 4e 54 29 3b |:= MAX(L|ONGINT);|
|00003720| 20 74 20 3a 3d 20 4d 41 | 58 28 4c 4f 4e 47 49 4e | t := MA|X(LONGIN|
|00003730| 54 29 3b 0d 09 09 09 09 | 57 48 49 4c 45 20 70 20 |T);.....|WHILE p |
|00003740| 23 20 4e 49 4c 20 44 4f | 0d 09 09 09 09 09 46 6f |# NIL DO|......Fo|
|00003750| 72 6d 4d 6f 64 65 6c 73 | 2e 47 65 74 52 65 63 74 |rmModels|.GetRect|
|00003760| 28 70 2e 76 69 65 77 2c | 20 76 6c 2c 20 76 74 2c |(p.view,| vl, vt,|
|00003770| 20 76 72 2c 20 76 62 29 | 3b 0d 09 09 09 09 09 49 | vr, vb)|;......I|
|00003780| 46 20 76 6c 20 3c 20 6c | 20 54 48 45 4e 20 6c 20 |F vl < l| THEN l |
|00003790| 3a 3d 20 76 6c 20 45 4e | 44 3b 0d 09 09 09 09 09 |:= vl EN|D;......|
|000037a0| 49 46 20 76 74 20 3c 20 | 74 20 54 48 45 4e 20 74 |IF vt < |t THEN t|
|000037b0| 20 3a 3d 20 76 74 20 45 | 4e 44 3b 0d 09 09 09 09 | := vt E|ND;.....|
|000037c0| 09 70 20 3a 3d 20 70 2e | 6e 65 78 74 0d 09 09 09 |.p := p.|next....|
|000037d0| 09 45 4e 44 3b 0d 09 09 | 09 09 64 78 20 3a 3d 20 |.END;...|..dx := |
|000037e0| 6c 20 2d 20 62 6f 72 64 | 65 72 3b 20 64 79 20 3a |l - bord|er; dy :|
|000037f0| 3d 20 74 20 2d 20 62 6f | 72 64 65 72 0d 09 09 09 |= t - bo|rder....|
|00003800| 45 4e 44 0d 09 09 45 4e | 44 20 47 65 74 4f 66 66 |END...EN|D GetOff|
|00003810| 73 65 74 3b 0d 0d 09 42 | 45 47 49 4e 0d 09 09 73 |set;...B|EGIN...s|
|00003820| 74 20 3a 3d 20 53 74 6f | 72 65 73 2e 43 6c 6f 6e |t := Sto|res.Clon|
|00003830| 65 28 63 2e 66 6f 72 6d | 29 3b 20 66 20 3a 3d 20 |e(c.form|); f := |
|00003840| 73 74 28 46 6f 72 6d 4d | 6f 64 65 6c 73 2e 4d 6f |st(FormM|odels.Mo|
|00003850| 64 65 6c 29 3b 0d 09 09 | 70 20 3a 3d 20 63 2e 73 |del);...|p := c.s|
|00003860| 65 6c 3b 0d 09 09 47 65 | 74 4f 66 66 73 65 74 28 |el;...Ge|tOffset(|
|00003870| 63 2e 66 6f 72 6d 2c 20 | 70 2c 20 63 2e 76 69 65 |c.form, |p, c.vie|
|00003880| 77 2e 62 6f 72 64 65 72 | 2c 20 64 78 2c 20 64 79 |w.border|, dx, dy|
|00003890| 29 3b 0d 09 09 57 48 49 | 4c 45 20 70 20 23 20 4e |);...WHI|LE p # N|
|000038a0| 49 4c 20 44 4f 0d 09 09 | 09 46 6f 72 6d 4d 6f 64 |IL DO...|.FormMod|
|000038b0| 65 6c 73 2e 47 65 74 52 | 65 63 74 28 70 2e 76 69 |els.GetR|ect(p.vi|
|000038c0| 65 77 2c 20 6c 2c 20 74 | 2c 20 72 2c 20 62 29 3b |ew, l, t|, r, b);|
|000038d0| 0d 09 09 09 66 2e 49 6e | 73 65 72 74 28 56 69 65 |....f.In|sert(Vie|
|000038e0| 77 73 2e 43 6f 70 79 4f | 66 28 70 2e 76 69 65 77 |ws.CopyO|f(p.view|
|000038f0| 2c 20 56 69 65 77 73 2e | 64 65 65 70 29 2c 20 6c |, Views.|deep), l|
|00003900| 20 2d 20 64 78 2c 20 74 | 20 2d 20 64 79 2c 20 72 | - dx, t| - dy, r|
|00003910| 20 2d 20 64 78 2c 20 62 | 20 2d 20 64 79 29 3b 0d | - dx, b| - dy);.|
|00003920| 09 09 09 70 20 3a 3d 20 | 70 2e 6e 65 78 74 0d 09 |...p := |p.next..|
|00003930| 09 45 4e 44 3b 0d 09 09 | 52 45 54 55 52 4e 20 66 |.END;...|RETURN f|
|00003940| 0d 09 45 4e 44 20 53 65 | 6c 65 63 74 69 6f 6e 43 |..END Se|lectionC|
|00003950| 6f 70 79 3b 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |opy;...P|ROCEDURE|
|00003960| 20 28 63 3a 20 53 74 64 | 43 6f 6e 74 72 6f 6c 6c | (c: Std|Controll|
|00003970| 65 72 29 20 4e 61 74 69 | 76 65 50 61 73 74 65 20 |er) Nati|vePaste |
|00003980| 28 6d 3a 20 4d 6f 64 65 | 6c 73 2e 4d 6f 64 65 6c |(m: Mode|ls.Model|
|00003990| 3b 20 66 3a 20 56 69 65 | 77 73 2e 46 72 61 6d 65 |; f: Vie|ws.Frame|
|000039a0| 29 3b 0d 09 09 56 41 52 | 20 78 2c 20 79 2c 20 63 |);...VAR| x, y, c|
|000039b0| 77 2c 20 63 68 2c 20 6c | 2c 20 74 2c 20 72 2c 20 |w, ch, l|, t, r, |
|000039c0| 62 3a 20 4c 4f 4e 47 49 | 4e 54 3b 20 70 3a 20 56 |b: LONGI|NT; p: V|
|000039d0| 69 65 77 73 2e 56 69 65 | 77 3b 20 73 3a 20 46 6f |iews.Vie|w; s: Fo|
|000039e0| 72 6d 4d 6f 64 65 6c 73 | 2e 52 65 61 64 65 72 3b |rmModels|.Reader;|
|000039f0| 0d 09 09 09 6e 2c 20 69 | 3a 20 49 4e 54 45 47 45 |....n, i|: INTEGE|
|00003a00| 52 3b 0d 09 42 45 47 49 | 4e 0d 09 09 78 20 3a 3d |R;..BEGI|N...x :=|
|00003a10| 20 63 2e 6c 61 73 74 58 | 3b 20 79 20 3a 3d 20 63 | c.lastX|; y := c|
|00003a20| 2e 6c 61 73 74 59 3b 0d | 09 09 63 2e 76 69 65 77 |.lastY;.|..c.view|
|00003a30| 2e 63 6f 6e 74 65 78 74 | 2e 47 65 74 53 69 7a 65 |.context|.GetSize|
|00003a40| 28 63 77 2c 20 63 68 29 | 3b 0d 09 09 49 46 20 28 |(cw, ch)|;...IF (|
|00003a50| 78 20 3c 3d 20 66 2e 6c | 29 20 4f 52 20 28 78 20 |x <= f.l|) OR (x |
|00003a60| 3e 3d 20 66 2e 72 29 20 | 4f 52 20 28 79 20 3c 3d |>= f.r) |OR (y <=|
|00003a70| 20 66 2e 74 29 20 4f 52 | 20 28 79 20 3e 3d 20 66 | f.t) OR| (y >= f|
|00003a80| 2e 62 29 20 54 48 45 4e | 0d 09 09 09 78 20 3a 3d |.b) THEN|....x :=|
|00003a90| 20 28 66 2e 6c 20 2b 20 | 66 2e 72 29 20 44 49 56 | (f.l + |f.r) DIV|
|00003aa0| 20 32 3b 20 79 20 3a 3d | 20 28 66 2e 72 20 2b 20 | 2; y :=| (f.r + |
|00003ab0| 66 2e 62 29 20 44 49 56 | 20 32 0d 09 09 45 4e 44 |f.b) DIV| 2...END|
|00003ac0| 3b 0d 09 09 63 2e 6c 61 | 73 74 58 20 3a 3d 20 78 |;...c.la|stX := x|
|00003ad0| 3b 20 63 2e 6c 61 73 74 | 59 20 3a 3d 20 79 3b 0d |; c.last|Y := y;.|
|00003ae0| 09 09 46 6f 72 6d 56 69 | 65 77 73 2e 52 6f 75 6e |..FormVi|ews.Roun|
|00003af0| 64 54 6f 47 72 69 64 28 | 63 2e 76 69 65 77 2c 20 |dToGrid(|c.view, |
|00003b00| 78 2c 20 79 29 3b 0d 09 | 09 57 49 54 48 20 6d 3a |x, y);..|.WITH m:|
|00003b10| 20 46 6f 72 6d 4d 6f 64 | 65 6c 73 2e 4d 6f 64 65 | FormMod|els.Mode|
|00003b20| 6c 20 44 4f 0d 09 09 09 | 73 20 3a 3d 20 6d 2e 4e |l DO....|s := m.N|
|00003b30| 65 77 52 65 61 64 65 72 | 28 4e 49 4c 29 3b 0d 09 |ewReader|(NIL);..|
|00003b40| 09 09 73 2e 53 65 74 28 | 4e 49 4c 29 3b 20 73 2e |..s.Set(|NIL); s.|
|00003b50| 52 65 61 64 56 69 65 77 | 28 70 29 3b 20 6e 20 3a |ReadView|(p); n :|
|00003b60| 3d 20 30 3b 0d 09 09 09 | 57 48 49 4c 45 20 70 20 |= 0;....|WHILE p |
|00003b70| 23 20 4e 49 4c 20 44 4f | 0d 09 09 09 09 46 6f 72 |# NIL DO|.....For|
|00003b80| 6d 4d 6f 64 65 6c 73 2e | 47 65 74 52 65 63 74 28 |mModels.|GetRect(|
|00003b90| 70 2c 20 6c 2c 20 74 2c | 20 72 2c 20 62 29 3b 0d |p, l, t,| r, b);.|
|00003ba0| 09 09 09 09 63 2e 66 6f | 72 6d 2e 49 6e 73 65 72 |....c.fo|rm.Inser|
|00003bb0| 74 28 56 69 65 77 73 2e | 43 6f 70 79 4f 66 28 70 |t(Views.|CopyOf(p|
|00003bc0| 2c 20 56 69 65 77 73 2e | 73 68 61 6c 6c 6f 77 29 |, Views.|shallow)|
|00003bd0| 2c 20 78 20 2b 20 6c 2c | 20 79 20 2b 20 74 2c 20 |, x + l,| y + t, |
|00003be0| 78 20 2b 20 72 2c 20 79 | 20 2b 20 62 29 3b 20 49 |x + r, y| + b); I|
|00003bf0| 4e 43 28 6e 29 3b 0d 09 | 09 09 09 73 2e 52 65 61 |NC(n);..|...s.Rea|
|00003c00| 64 56 69 65 77 28 70 29 | 0d 09 09 09 45 4e 44 3b |dView(p)|....END;|
|00003c10| 0d 09 09 09 28 2a 20 6e | 20 76 69 65 77 73 20 68 |....(* n| views h|
|00003c20| 61 76 65 20 62 65 65 6e | 20 69 6e 73 65 72 74 65 |ave been| inserte|
|00003c30| 64 20 61 74 20 74 68 65 | 20 74 6f 70 20 3d 3e 20 |d at the| top => |
|00003c40| 73 65 6c 65 63 74 20 74 | 68 65 6d 20 2a 29 0d 09 |select t|hem *)..|
|00003c50| 09 09 63 2e 53 65 6c 65 | 63 74 41 6c 6c 28 43 6f |..c.Sele|ctAll(Co|
|00003c60| 6e 74 61 69 6e 65 72 73 | 2e 64 65 73 65 6c 65 63 |ntainers|.deselec|
|00003c70| 74 29 3b 0d 09 09 09 69 | 20 3a 3d 20 63 2e 66 6f |t);....i| := c.fo|
|00003c80| 72 6d 2e 4e 6f 66 56 69 | 65 77 73 28 29 20 2d 20 |rm.NofVi|ews() - |
|00003c90| 6e 3b 20 41 53 53 45 52 | 54 28 69 20 3e 3d 20 30 |n; ASSER|T(i >= 0|
|00003ca0| 2c 20 31 30 30 29 3b 0d | 09 09 09 73 20 3a 3d 20 |, 100);.|...s := |
|00003cb0| 63 2e 66 6f 72 6d 2e 4e | 65 77 52 65 61 64 65 72 |c.form.N|ewReader|
|00003cc0| 28 73 29 3b 0d 09 09 09 | 73 2e 53 65 74 28 4e 49 |(s);....|s.Set(NI|
|00003cd0| 4c 29 3b 20 57 48 49 4c | 45 20 69 20 23 20 30 20 |L); WHIL|E i # 0 |
|00003ce0| 44 4f 20 73 2e 52 65 61 | 64 56 69 65 77 28 70 29 |DO s.Rea|dView(p)|
|00003cf0| 3b 20 44 45 43 28 69 29 | 20 45 4e 44 3b 09 28 2a |; DEC(i)| END;.(*|
|00003d00| 20 73 6b 69 70 20 6f 6c | 64 20 76 69 65 77 73 20 | skip ol|d views |
|00003d10| 2a 29 0d 09 09 09 57 48 | 49 4c 45 20 6e 20 23 20 |*)....WH|ILE n # |
|00003d20| 30 20 44 4f 20 73 2e 52 | 65 61 64 56 69 65 77 28 |0 DO s.R|eadView(|
|00003d30| 70 29 3b 20 63 2e 53 65 | 6c 65 63 74 28 70 29 3b |p); c.Se|lect(p);|
|00003d40| 20 44 45 43 28 6e 29 20 | 45 4e 44 0d 09 09 45 4e | DEC(n) |END...EN|
|00003d50| 44 0d 09 45 4e 44 20 4e | 61 74 69 76 65 50 61 73 |D..END N|ativePas|
|00003d60| 74 65 3b 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |te;...PR|OCEDURE |
|00003d70| 28 63 3a 20 53 74 64 43 | 6f 6e 74 72 6f 6c 6c 65 |(c: StdC|ontrolle|
|00003d80| 72 29 20 41 72 72 6f 77 | 43 68 61 72 20 28 66 3a |r) Arrow|Char (f:|
|00003d90| 20 56 69 65 77 73 2e 46 | 72 61 6d 65 3b 20 63 68 | Views.F|rame; ch|
|00003da0| 3a 20 43 48 41 52 3b 20 | 75 6e 69 74 73 2c 20 20 |: CHAR; |units, |
|00003db0| 73 65 6c 65 63 74 3a 20 | 42 4f 4f 4c 45 41 4e 29 |select: |BOOLEAN)|
|00003dc0| 3b 0d 09 09 56 41 52 20 | 64 3a 20 4c 4f 4e 47 49 |;...VAR |d: LONGI|
|00003dd0| 4e 54 3b 0d 09 42 45 47 | 49 4e 0d 09 09 64 20 3a |NT;..BEG|IN...d :|
|00003de0| 3d 20 63 2e 76 69 65 77 | 2e 67 72 69 64 3b 0d 09 |= c.view|.grid;..|
|00003df0| 09 49 46 20 75 6e 69 74 | 73 20 54 48 45 4e 20 64 |.IF unit|s THEN d|
|00003e00| 20 3a 3d 20 64 20 2a 20 | 63 2e 76 69 65 77 2e 67 | := d * |c.view.g|
|00003e10| 72 69 64 46 61 63 74 6f | 72 20 45 4e 44 3b 0d 09 |ridFacto|r END;..|
|00003e20| 09 49 46 20 63 68 20 3d | 20 61 72 72 6f 77 4c 65 |.IF ch =| arrowLe|
|00003e30| 66 74 20 54 48 45 4e 0d | 09 09 09 63 2e 4d 6f 76 |ft THEN.|...c.Mov|
|00003e40| 65 4c 6f 63 61 6c 53 65 | 6c 65 63 74 69 6f 6e 28 |eLocalSe|lection(|
|00003e50| 66 2c 20 66 2c 20 30 2c | 20 30 2c 20 2d 64 2c 20 |f, f, 0,| 0, -d, |
|00003e60| 30 29 0d 09 09 45 4c 53 | 49 46 20 63 68 20 3d 20 |0)...ELS|IF ch = |
|00003e70| 61 72 72 6f 77 52 69 67 | 68 74 20 54 48 45 4e 0d |arrowRig|ht THEN.|
|00003e80| 09 09 09 63 2e 4d 6f 76 | 65 4c 6f 63 61 6c 53 65 |...c.Mov|eLocalSe|
|00003e90| 6c 65 63 74 69 6f 6e 28 | 66 2c 20 66 2c 20 30 2c |lection(|f, f, 0,|
|00003ea0| 20 30 2c 20 2b 64 2c 20 | 30 29 0d 09 09 45 4c 53 | 0, +d, |0)...ELS|
|00003eb0| 49 46 20 63 68 20 3d 20 | 61 72 72 6f 77 55 70 20 |IF ch = |arrowUp |
|00003ec0| 54 48 45 4e 0d 09 09 09 | 63 2e 4d 6f 76 65 4c 6f |THEN....|c.MoveLo|
|00003ed0| 63 61 6c 53 65 6c 65 63 | 74 69 6f 6e 28 66 2c 20 |calSelec|tion(f, |
|00003ee0| 66 2c 20 30 2c 20 30 2c | 20 30 2c 20 2d 64 29 0d |f, 0, 0,| 0, -d).|
|00003ef0| 09 09 45 4c 53 49 46 20 | 63 68 20 3d 20 61 72 72 |..ELSIF |ch = arr|
|00003f00| 6f 77 44 6f 77 6e 20 54 | 48 45 4e 0d 09 09 09 63 |owDown T|HEN....c|
|00003f10| 2e 4d 6f 76 65 4c 6f 63 | 61 6c 53 65 6c 65 63 74 |.MoveLoc|alSelect|
|00003f20| 69 6f 6e 28 66 2c 20 66 | 2c 20 30 2c 20 30 2c 20 |ion(f, f|, 0, 0, |
|00003f30| 30 2c 20 2b 64 29 0d 09 | 09 45 4e 44 0d 09 45 4e |0, +d)..|.END..EN|
|00003f40| 44 20 41 72 72 6f 77 43 | 68 61 72 3b 0d 0d 09 50 |D ArrowC|har;...P|
|00003f50| 52 4f 43 45 44 55 52 45 | 20 28 63 3a 20 53 74 64 |ROCEDURE| (c: Std|
|00003f60| 43 6f 6e 74 72 6f 6c 6c | 65 72 29 20 43 6f 6e 74 |Controll|er) Cont|
|00003f70| 72 6f 6c 43 68 61 72 20 | 28 66 3a 20 56 69 65 77 |rolChar |(f: View|
|00003f80| 73 2e 46 72 61 6d 65 3b | 20 63 68 3a 20 43 48 41 |s.Frame;| ch: CHA|
|00003f90| 52 29 3b 0d 09 42 45 47 | 49 4e 0d 09 09 49 46 20 |R);..BEG|IN...IF |
|00003fa0| 28 63 68 20 3d 20 6c 64 | 65 6c 29 20 4f 52 20 28 |(ch = ld|el) OR (|
|00003fb0| 63 68 20 3d 20 72 64 65 | 6c 29 20 54 48 45 4e 20 |ch = rde|l) THEN |
|00003fc0| 63 2e 44 65 6c 65 74 65 | 53 65 6c 65 63 74 69 6f |c.Delete|Selectio|
|00003fd0| 6e 20 45 4e 44 0d 09 45 | 4e 44 20 43 6f 6e 74 72 |n END..E|ND Contr|
|00003fe0| 6f 6c 43 68 61 72 3b 0d | 0d 09 50 52 4f 43 45 44 |olChar;.|..PROCED|
|00003ff0| 55 52 45 20 28 63 3a 20 | 53 74 64 43 6f 6e 74 72 |URE (c: |StdContr|
|00004000| 6f 6c 6c 65 72 29 20 50 | 61 73 74 65 43 68 61 72 |oller) P|asteChar|
|00004010| 20 28 63 68 3a 20 43 48 | 41 52 29 3b 0d 09 45 4e | (ch: CH|AR);..EN|
|00004020| 44 20 50 61 73 74 65 43 | 68 61 72 3b 0d 0d 09 50 |D PasteC|har;...P|
|00004030| 52 4f 43 45 44 55 52 45 | 20 28 63 3a 20 53 74 64 |ROCEDURE| (c: Std|
|00004040| 43 6f 6e 74 72 6f 6c 6c | 65 72 29 20 50 61 73 74 |Controll|er) Past|
|00004050| 65 4c 43 68 61 72 20 28 | 63 68 3a 20 43 6f 6e 74 |eLChar (|ch: Cont|
|00004060| 61 69 6e 65 72 73 2e 4c | 4f 4e 47 43 48 41 52 29 |ainers.L|ONGCHAR)|
|00004070| 3b 0d 09 45 4e 44 20 50 | 61 73 74 65 4c 43 68 61 |;..END P|asteLCha|
|00004080| 72 3b 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 28 |r;...PRO|CEDURE (|
|00004090| 63 3a 20 53 74 64 43 6f | 6e 74 72 6f 6c 6c 65 72 |c: StdCo|ntroller|
|000040a0| 29 20 50 61 73 74 65 56 | 69 65 77 20 28 66 3a 20 |) PasteV|iew (f: |
|000040b0| 56 69 65 77 73 2e 46 72 | 61 6d 65 3b 20 76 3a 20 |Views.Fr|ame; v: |
|000040c0| 56 69 65 77 73 2e 56 69 | 65 77 3b 0d 09 09 09 09 |Views.Vi|ew;.....|
|000040d0| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 77 |........|.......w|
|000040e0| 2c 20 68 3a 20 4c 4f 4e | 47 49 4e 54 29 3b 0d 09 |, h: LON|GINT);..|
|000040f0| 09 56 41 52 20 6d 69 6e | 57 2c 20 6d 61 78 57 2c |.VAR min|W, maxW,|
|00004100| 20 6d 69 6e 48 2c 20 6d | 61 78 48 2c 20 78 2c 20 | minH, m|axH, x, |
|00004110| 79 3a 20 4c 4f 4e 47 49 | 4e 54 3b 0d 09 42 45 47 |y: LONGI|NT;..BEG|
|00004120| 49 4e 0d 09 09 78 20 3a | 3d 20 63 2e 6c 61 73 74 |IN...x :|= c.last|
|00004130| 58 3b 20 79 20 3a 3d 20 | 63 2e 6c 61 73 74 59 3b |X; y := |c.lastY;|
|00004140| 0d 09 09 49 46 20 28 78 | 20 3c 3d 20 66 2e 6c 29 |...IF (x| <= f.l)|
|00004150| 20 4f 52 20 28 78 20 3e | 3d 20 66 2e 72 29 20 4f | OR (x >|= f.r) O|
|00004160| 52 20 28 79 20 3c 3d 20 | 66 2e 74 29 20 4f 52 20 |R (y <= |f.t) OR |
|00004170| 28 79 20 3e 3d 20 66 2e | 62 29 20 54 48 45 4e 0d |(y >= f.|b) THEN.|
|00004180| 09 09 09 78 20 3a 3d 20 | 28 66 2e 6c 20 2b 20 66 |...x := |(f.l + f|
|00004190| 2e 72 29 20 44 49 56 20 | 32 3b 20 79 20 3a 3d 20 |.r) DIV |2; y := |
|000041a0| 28 66 2e 74 20 2b 20 66 | 2e 62 29 20 44 49 56 20 |(f.t + f|.b) DIV |
|000041b0| 32 0d 09 09 45 4e 44 3b | 0d 09 09 63 2e 6c 61 73 |2...END;|...c.las|
|000041c0| 74 58 20 3a 3d 20 78 3b | 20 63 2e 6c 61 73 74 59 |tX := x;| c.lastY|
|000041d0| 20 3a 3d 20 79 3b 0d 09 | 09 46 6f 72 6d 56 69 65 | := y;..|.FormVie|
|000041e0| 77 73 2e 52 6f 75 6e 64 | 54 6f 47 72 69 64 28 63 |ws.Round|ToGrid(c|
|000041f0| 2e 76 69 65 77 2c 20 78 | 2c 20 79 29 3b 0d 09 09 |.view, x|, y);...|
|00004200| 63 2e 66 6f 72 6d 2e 47 | 65 74 45 6d 62 65 64 64 |c.form.G|etEmbedd|
|00004210| 69 6e 67 4c 69 6d 69 74 | 73 28 6d 69 6e 57 2c 20 |ingLimit|s(minW, |
|00004220| 6d 61 78 57 2c 20 6d 69 | 6e 48 2c 20 6d 61 78 48 |maxW, mi|nH, maxH|
|00004230| 29 3b 0d 09 09 50 72 6f | 70 65 72 74 69 65 73 2e |);...Pro|perties.|
|00004240| 50 72 65 66 65 72 72 65 | 64 53 69 7a 65 28 76 2c |Preferre|dSize(v,|
|00004250| 20 6d 69 6e 57 2c 20 6d | 61 78 57 2c 20 6d 69 6e | minW, m|axW, min|
|00004260| 48 2c 20 6d 61 78 48 2c | 20 6d 69 6e 57 2c 20 6d |H, maxH,| minW, m|
|00004270| 69 6e 48 2c 20 77 2c 20 | 68 29 3b 0d 09 09 63 2e |inH, w, |h);...c.|
|00004280| 66 6f 72 6d 2e 49 6e 73 | 65 72 74 28 76 2c 20 78 |form.Ins|ert(v, x|
|00004290| 2c 20 79 2c 20 78 20 2b | 20 77 2c 20 79 20 2b 20 |, y, x +| w, y + |
|000042a0| 68 29 3b 20 63 2e 53 65 | 6c 65 63 74 28 76 29 0d |h); c.Se|lect(v).|
|000042b0| 09 45 4e 44 20 50 61 73 | 74 65 56 69 65 77 3b 0d |.END Pas|teView;.|
|000042c0| 0d 09 50 52 4f 43 45 44 | 55 52 45 20 28 63 3a 20 |..PROCED|URE (c: |
|000042d0| 53 74 64 43 6f 6e 74 72 | 6f 6c 6c 65 72 29 20 44 |StdContr|oller) D|
|000042e0| 72 6f 70 20 28 73 72 63 | 2c 20 64 73 74 3a 20 56 |rop (src|, dst: V|
|000042f0| 69 65 77 73 2e 46 72 61 | 6d 65 3b 20 73 78 2c 20 |iews.Fra|me; sx, |
|00004300| 73 79 2c 20 64 78 2c 20 | 64 79 2c 0d 09 09 09 09 |sy, dx, |dy,.....|
|00004310| 09 09 09 09 09 09 09 09 | 09 09 09 77 2c 20 68 2c |........|...w, h,|
|00004320| 20 72 78 2c 20 72 79 3a | 20 4c 4f 4e 47 49 4e 54 | rx, ry:| LONGINT|
|00004330| 3b 20 76 3a 20 56 69 65 | 77 73 2e 56 69 65 77 3b |; v: Vie|ws.View;|
|00004340| 20 69 73 53 69 6e 67 6c | 65 3a 20 42 4f 4f 4c 45 | isSingl|e: BOOLE|
|00004350| 41 4e 29 3b 0d 09 09 56 | 41 52 20 6d 69 6e 57 2c |AN);...V|AR minW,|
|00004360| 20 6d 61 78 57 2c 20 6d | 69 6e 48 2c 20 6d 61 78 | maxW, m|inH, max|
|00004370| 48 2c 20 76 78 2c 20 76 | 79 2c 20 6c 2c 20 74 2c |H, vx, v|y, l, t,|
|00004380| 20 72 2c 20 62 2c 20 73 | 77 2c 20 73 68 3a 20 4c | r, b, s|w, sh: L|
|00004390| 4f 4e 47 49 4e 54 3b 0d | 09 09 09 73 63 3a 20 43 |ONGINT;.|...sc: C|
|000043a0| 6f 6e 74 61 69 6e 65 72 | 73 2e 43 6f 6e 74 72 6f |ontainer|s.Contro|
|000043b0| 6c 6c 65 72 3b 20 73 3a | 20 56 69 65 77 73 2e 56 |ller; s:| Views.V|
|000043c0| 69 65 77 3b 20 70 2c 20 | 71 3a 20 4c 69 73 74 3b |iew; p, |q: List;|
|000043d0| 0d 09 09 09 72 64 3a 20 | 46 6f 72 6d 4d 6f 64 65 |....rd: |FormMode|
|000043e0| 6c 73 2e 52 65 61 64 65 | 72 3b 20 6d 3a 20 46 6f |ls.Reade|r; m: Fo|
|000043f0| 72 6d 4d 6f 64 65 6c 73 | 2e 4d 6f 64 65 6c 3b 0d |rmModels|.Model;.|
|00004400| 09 42 45 47 49 4e 09 28 | 2a 20 63 66 2e 20 4d 61 |.BEGIN.(|* cf. Ma|
|00004410| 72 6b 44 72 6f 70 54 61 | 72 67 65 74 20 2a 29 0d |rkDropTa|rget *).|
|00004420| 09 09 44 45 43 28 64 78 | 2c 20 72 78 29 3b 20 44 |..DEC(dx|, rx); D|
|00004430| 45 43 28 64 79 2c 20 72 | 79 29 3b 0d 09 09 49 46 |EC(dy, r|y);...IF|
|00004440| 20 7e 69 73 53 69 6e 67 | 6c 65 20 26 20 28 76 20 | ~isSing|le & (v |
|00004450| 49 53 20 46 6f 72 6d 56 | 69 65 77 73 2e 56 69 65 |IS FormV|iews.Vie|
|00004460| 77 29 20 54 48 45 4e 0d | 09 09 09 6d 20 3a 3d 20 |w) THEN.|...m := |
|00004470| 76 28 46 6f 72 6d 56 69 | 65 77 73 2e 56 69 65 77 |v(FormVi|ews.View|
|00004480| 29 2e 54 68 69 73 4d 6f | 64 65 6c 28 29 3b 0d 09 |).ThisMo|del();..|
|00004490| 09 09 72 64 20 3a 3d 20 | 6d 2e 4e 65 77 52 65 61 |..rd := |m.NewRea|
|000044a0| 64 65 72 28 4e 49 4c 29 | 3b 0d 09 09 09 72 64 2e |der(NIL)|;....rd.|
|000044b0| 52 65 61 64 56 69 65 77 | 28 73 29 3b 20 70 20 3a |ReadView|(s); p :|
|000044c0| 3d 20 4e 49 4c 3b 0d 09 | 09 09 57 48 49 4c 45 20 |= NIL;..|..WHILE |
|000044d0| 73 20 23 20 4e 49 4c 20 | 44 4f 0d 09 09 09 09 6c |s # NIL |DO.....l|
|000044e0| 20 3a 3d 20 72 64 2e 6c | 20 2b 20 64 78 3b 20 74 | := rd.l| + dx; t|
|000044f0| 20 3a 3d 20 72 64 2e 74 | 20 2b 20 64 79 3b 20 73 | := rd.t| + dy; s|
|00004500| 77 20 3a 3d 20 72 64 2e | 72 20 2d 20 72 64 2e 6c |w := rd.|r - rd.l|
|00004510| 3b 20 73 68 20 3a 3d 20 | 72 64 2e 62 20 2d 20 72 |; sh := |rd.b - r|
|00004520| 64 2e 74 3b 0d 09 09 09 | 09 46 6f 72 6d 56 69 65 |d.t;....|.FormVie|
|00004530| 77 73 2e 52 6f 75 6e 64 | 54 6f 47 72 69 64 28 63 |ws.Round|ToGrid(c|
|00004540| 2e 76 69 65 77 2c 20 6c | 2c 20 74 29 3b 0d 09 09 |.view, l|, t);...|
|00004550| 09 09 73 20 3a 3d 20 56 | 69 65 77 73 2e 43 6f 70 |..s := V|iews.Cop|
|00004560| 79 4f 66 28 73 2c 20 56 | 69 65 77 73 2e 73 68 61 |yOf(s, V|iews.sha|
|00004570| 6c 6c 6f 77 29 3b 0d 09 | 09 09 09 63 2e 66 6f 72 |llow);..|...c.for|
|00004580| 6d 2e 49 6e 73 65 72 74 | 28 73 2c 20 6c 2c 20 74 |m.Insert|(s, l, t|
|00004590| 2c 20 6c 20 2b 20 73 77 | 2c 20 74 20 2b 20 73 68 |, l + sw|, t + sh|
|000045a0| 29 3b 0d 09 09 09 09 4e | 45 57 28 71 29 3b 20 71 |);.....N|EW(q); q|
|000045b0| 2e 6e 65 78 74 20 3a 3d | 20 70 3b 20 70 20 3a 3d |.next :=| p; p :=|
|000045c0| 20 71 3b 20 71 2e 76 69 | 65 77 20 3a 3d 20 73 3b | q; q.vi|ew := s;|
|000045d0| 0d 09 09 09 09 72 64 2e | 52 65 61 64 56 69 65 77 |.....rd.|ReadView|
|000045e0| 28 73 29 0d 09 09 09 45 | 4e 44 3b 0d 09 09 09 63 |(s)....E|ND;....c|
|000045f0| 2e 53 65 74 53 65 6c 65 | 63 74 69 6f 6e 28 70 29 |.SetSele|ction(p)|
|00004600| 0d 09 09 45 4c 53 45 0d | 09 09 09 46 6f 72 6d 56 |...ELSE.|...FormV|
|00004610| 69 65 77 73 2e 52 6f 75 | 6e 64 54 6f 47 72 69 64 |iews.Rou|ndToGrid|
|00004620| 28 63 2e 76 69 65 77 2c | 20 64 78 2c 20 64 79 29 |(c.view,| dx, dy)|
|00004630| 3b 0d 09 09 09 63 2e 66 | 6f 72 6d 2e 47 65 74 45 |;....c.f|orm.GetE|
|00004640| 6d 62 65 64 64 69 6e 67 | 4c 69 6d 69 74 73 28 6d |mbedding|Limits(m|
|00004650| 69 6e 57 2c 20 6d 61 78 | 57 2c 20 6d 69 6e 48 2c |inW, max|W, minH,|
|00004660| 20 6d 61 78 48 29 3b 0d | 09 09 09 50 72 6f 70 65 | maxH);.|...Prope|
|00004670| 72 74 69 65 73 2e 50 72 | 65 66 65 72 72 65 64 53 |rties.Pr|eferredS|
|00004680| 69 7a 65 28 76 2c 20 6d | 69 6e 57 2c 20 6d 61 78 |ize(v, m|inW, max|
|00004690| 57 2c 20 6d 69 6e 48 2c | 20 6d 61 78 48 2c 20 6d |W, minH,| maxH, m|
|000046a0| 69 6e 57 2c 20 6d 69 6e | 48 2c 20 77 2c 20 68 29 |inW, min|H, w, h)|
|000046b0| 3b 0d 09 09 09 63 2e 66 | 6f 72 6d 2e 49 6e 73 65 |;....c.f|orm.Inse|
|000046c0| 72 74 28 76 2c 20 64 78 | 2c 20 64 79 2c 20 64 78 |rt(v, dx|, dy, dx|
|000046d0| 20 2b 20 77 2c 20 64 79 | 20 2b 20 68 29 3b 20 63 | + w, dy| + h); c|
|000046e0| 2e 53 65 6c 65 63 74 28 | 76 29 0d 09 09 45 4e 44 |.Select(|v)...END|
|000046f0| 0d 09 45 4e 44 20 44 72 | 6f 70 3b 0d 0d 0d 09 28 |..END Dr|op;....(|
|00004700| 2a 20 73 65 6c 65 63 74 | 69 6f 6e 20 2a 29 0d 0d |* select|ion *)..|
|00004710| 09 50 52 4f 43 45 44 55 | 52 45 20 28 63 3a 20 53 |.PROCEDU|RE (c: S|
|00004720| 74 64 43 6f 6e 74 72 6f | 6c 6c 65 72 29 20 48 61 |tdContro|ller) Ha|
|00004730| 73 53 65 6c 65 63 74 69 | 6f 6e 20 28 29 3a 20 42 |sSelecti|on (): B|
|00004740| 4f 4f 4c 45 41 4e 3b 0d | 09 42 45 47 49 4e 0d 09 |OOLEAN;.|.BEGIN..|
|00004750| 09 52 45 54 55 52 4e 20 | 63 2e 73 65 6c 20 23 20 |.RETURN |c.sel # |
|00004760| 4e 49 4c 0d 09 45 4e 44 | 20 48 61 73 53 65 6c 65 |NIL..END| HasSele|
|00004770| 63 74 69 6f 6e 3b 0d 0d | 09 50 52 4f 43 45 44 55 |ction;..|.PROCEDU|
|00004780| 52 45 20 28 63 3a 20 53 | 74 64 43 6f 6e 74 72 6f |RE (c: S|tdContro|
|00004790| 6c 6c 65 72 29 20 53 65 | 6c 65 63 74 61 62 6c 65 |ller) Se|lectable|
|000047a0| 20 28 29 3a 20 42 4f 4f | 4c 45 41 4e 3b 0d 09 42 | (): BOO|LEAN;..B|
|000047b0| 45 47 49 4e 0d 09 09 52 | 45 54 55 52 4e 20 63 2e |EGIN...R|ETURN c.|
|000047c0| 66 6f 72 6d 2e 4e 6f 66 | 56 69 65 77 73 28 29 20 |form.Nof|Views() |
|000047d0| 23 20 30 0d 09 45 4e 44 | 20 53 65 6c 65 63 74 61 |# 0..END| Selecta|
|000047e0| 62 6c 65 3b 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |ble;...P|ROCEDURE|
|000047f0| 20 28 63 3a 20 53 74 64 | 43 6f 6e 74 72 6f 6c 6c | (c: Std|Controll|
|00004800| 65 72 29 20 53 65 74 53 | 69 6e 67 6c 65 74 6f 6e |er) SetS|ingleton|
|00004810| 20 28 73 3a 20 56 69 65 | 77 73 2e 56 69 65 77 29 | (s: Vie|ws.View)|
|00004820| 3b 0d 09 09 56 41 52 20 | 6c 3a 20 4c 69 73 74 3b |;...VAR |l: List;|
|00004830| 0d 09 42 45 47 49 4e 0d | 09 09 63 2e 53 65 74 53 |..BEGIN.|..c.SetS|
|00004840| 69 6e 67 6c 65 74 6f 6e | 5e 28 73 29 3b 0d 09 09 |ingleton|^(s);...|
|00004850| 49 46 20 73 20 23 20 4e | 49 4c 20 54 48 45 4e 20 |IF s # N|IL THEN |
|00004860| 4e 45 57 28 6c 29 3b 20 | 6c 2e 76 69 65 77 20 3a |NEW(l); |l.view :|
|00004870| 3d 20 73 3b 20 63 2e 73 | 65 6c 20 3a 3d 20 6c 20 |= s; c.s|el := l |
|00004880| 45 4c 53 45 20 63 2e 73 | 65 6c 20 3a 3d 20 4e 49 |ELSE c.s|el := NI|
|00004890| 4c 20 45 4e 44 0d 09 45 | 4e 44 20 53 65 74 53 69 |L END..E|ND SetSi|
|000048a0| 6e 67 6c 65 74 6f 6e 3b | 0d 0d 09 50 52 4f 43 45 |ngleton;|...PROCE|
|000048b0| 44 55 52 45 20 28 63 3a | 20 53 74 64 43 6f 6e 74 |DURE (c:| StdCont|
|000048c0| 72 6f 6c 6c 65 72 29 20 | 53 65 6c 65 63 74 41 6c |roller) |SelectAl|
|000048d0| 6c 20 28 73 65 6c 65 63 | 74 3a 20 42 4f 4f 4c 45 |l (selec|t: BOOLE|
|000048e0| 41 4e 29 3b 0d 09 09 56 | 41 52 20 73 3a 20 46 6f |AN);...V|AR s: Fo|
|000048f0| 72 6d 4d 6f 64 65 6c 73 | 2e 52 65 61 64 65 72 3b |rmModels|.Reader;|
|00004900| 20 76 3a 20 56 69 65 77 | 73 2e 56 69 65 77 3b 20 | v: View|s.View; |
|00004910| 6c 2c 20 68 3a 20 4c 69 | 73 74 3b 20 6d 73 67 3a |l, h: Li|st; msg:|
|00004920| 20 4d 61 72 6b 4d 73 67 | 3b 0d 09 42 45 47 49 4e | MarkMsg|;..BEGIN|
|00004930| 0d 09 09 49 46 20 73 65 | 6c 65 63 74 20 54 48 45 |...IF se|lect THE|
|00004940| 4e 0d 09 09 09 41 53 53 | 45 52 54 28 7e 28 43 6f |N....ASS|ERT(~(Co|
|00004950| 6e 74 61 69 6e 65 72 73 | 2e 6e 6f 53 65 6c 65 63 |ntainers|.noSelec|
|00004960| 74 69 6f 6e 20 49 4e 20 | 63 2e 6f 70 74 73 29 2c |tion IN |c.opts),|
|00004970| 20 32 30 29 3b 0d 09 09 | 09 63 2e 53 65 74 46 6f | 20);...|.c.SetFo|
|00004980| 63 75 73 28 4e 49 4c 29 | 3b 0d 09 09 09 73 20 3a |cus(NIL)|;....s :|
|00004990| 3d 20 63 2e 66 6f 72 6d | 2e 4e 65 77 52 65 61 64 |= c.form|.NewRead|
|000049a0| 65 72 28 63 2e 72 65 61 | 64 65 72 29 3b 20 63 2e |er(c.rea|der); c.|
|000049b0| 72 65 61 64 65 72 20 3a | 3d 20 73 3b 0d 09 09 09 |reader :|= s;....|
|000049c0| 73 2e 53 65 74 28 4e 49 | 4c 29 3b 20 73 2e 52 65 |s.Set(NI|L); s.Re|
|000049d0| 61 64 56 69 65 77 28 76 | 29 3b 0d 09 09 09 49 46 |adView(v|);....IF|
|000049e0| 20 63 2e 66 6f 72 6d 2e | 4e 6f 66 56 69 65 77 73 | c.form.|NofViews|
|000049f0| 28 29 20 3d 20 31 20 54 | 48 45 4e 0d 09 09 09 09 |() = 1 T|HEN.....|
|00004a00| 41 53 53 45 52 54 28 76 | 20 23 20 4e 49 4c 2c 20 |ASSERT(v| # NIL, |
|00004a10| 31 30 30 29 3b 0d 09 09 | 09 09 63 2e 53 65 74 53 |100);...|..c.SetS|
|00004a20| 69 6e 67 6c 65 74 6f 6e | 28 76 29 0d 09 09 09 45 |ingleton|(v)....E|
|00004a30| 4c 53 45 0d 09 09 09 09 | 49 46 20 28 63 2e 73 65 |LSE.....|IF (c.se|
|00004a40| 6c 20 23 20 4e 49 4c 29 | 20 26 20 28 63 2e 73 65 |l # NIL)| & (c.se|
|00004a50| 6c 2e 6e 65 78 74 20 3d | 20 4e 49 4c 29 20 54 48 |l.next =| NIL) TH|
|00004a60| 45 4e 20 63 2e 53 65 74 | 53 69 6e 67 6c 65 74 6f |EN c.Set|Singleto|
|00004a70| 6e 28 4e 49 4c 29 20 45 | 4e 44 3b 0d 09 09 09 09 |n(NIL) E|ND;.....|
|00004a80| 6c 20 3a 3d 20 4e 49 4c | 3b 0d 09 09 09 09 57 48 |l := NIL|;.....WH|
|00004a90| 49 4c 45 20 76 20 23 20 | 4e 49 4c 20 44 4f 0d 09 |ILE v # |NIL DO..|
|00004aa0| 09 09 09 09 49 46 20 7e | 63 2e 49 73 53 65 6c 65 |....IF ~|c.IsSele|
|00004ab0| 63 74 65 64 28 76 29 20 | 54 48 45 4e 20 4e 45 57 |cted(v) |THEN NEW|
|00004ac0| 28 68 29 3b 20 68 2e 6e | 65 78 74 20 3a 3d 20 6c |(h); h.n|ext := l|
|00004ad0| 3b 20 6c 20 3a 3d 20 68 | 3b 20 68 2e 76 69 65 77 |; l := h|; h.view|
|00004ae0| 20 3a 3d 20 76 20 45 4e | 44 3b 0d 09 09 09 09 09 | := v EN|D;......|
|00004af0| 73 2e 52 65 61 64 56 69 | 65 77 28 76 29 0d 09 09 |s.ReadVi|ew(v)...|
|00004b00| 09 09 45 4e 44 3b 0d 09 | 09 09 09 6d 73 67 2e 6c |..END;..|...msg.l|
|00004b10| 69 73 74 20 3a 3d 20 6c | 3b 0d 09 09 09 09 68 20 |ist := l|;.....h |
|00004b20| 3a 3d 20 63 2e 73 65 6c | 3b 20 57 48 49 4c 45 20 |:= c.sel|; WHILE |
|00004b30| 28 68 20 23 20 4e 49 4c | 29 20 26 20 28 68 2e 6e |(h # NIL|) & (h.n|
|00004b40| 65 78 74 20 23 20 4e 49 | 4c 29 20 44 4f 20 68 20 |ext # NI|L) DO h |
|00004b50| 3a 3d 20 68 2e 6e 65 78 | 74 20 45 4e 44 3b 0d 09 |:= h.nex|t END;..|
|00004b60| 09 09 09 49 46 20 68 20 | 3d 20 4e 49 4c 20 54 48 |...IF h |= NIL TH|
|00004b70| 45 4e 20 63 2e 73 65 6c | 20 3a 3d 20 6c 20 45 4c |EN c.sel| := l EL|
|00004b80| 53 45 20 68 2e 6e 65 78 | 74 20 3a 3d 20 6c 20 45 |SE h.nex|t := l E|
|00004b90| 4e 44 3b 0d 09 09 09 09 | 49 46 20 6d 73 67 2e 6c |ND;.....|IF msg.l|
|00004ba0| 69 73 74 20 23 20 4e 49 | 4c 20 54 48 45 4e 20 6d |ist # NI|L THEN m|
|00004bb0| 73 67 2e 73 68 6f 77 20 | 3a 3d 20 54 52 55 45 3b |sg.show |:= TRUE;|
|00004bc0| 20 56 69 65 77 73 2e 42 | 72 6f 61 64 63 61 73 74 | Views.B|roadcast|
|00004bd0| 28 63 2e 76 69 65 77 2c | 20 6d 73 67 29 20 45 4e |(c.view,| msg) EN|
|00004be0| 44 0d 09 09 09 45 4e 44 | 0d 09 09 45 4c 53 49 46 |D....END|...ELSIF|
|00004bf0| 20 63 2e 73 65 6c 20 23 | 20 4e 49 4c 20 54 48 45 | c.sel #| NIL THE|
|00004c00| 4e 0d 09 09 09 49 46 20 | 63 2e 73 65 6c 2e 6e 65 |N....IF |c.sel.ne|
|00004c10| 78 74 20 3d 20 4e 49 4c | 20 54 48 45 4e 09 28 2a |xt = NIL| THEN.(*|
|00004c20| 20 73 69 6e 67 6c 65 74 | 6f 6e 20 2a 29 0d 09 09 | singlet|on *)...|
|00004c30| 09 09 63 2e 53 65 74 53 | 69 6e 67 6c 65 74 6f 6e |..c.SetS|ingleton|
|00004c40| 28 4e 49 4c 29 0d 09 09 | 09 45 4c 53 45 0d 09 09 |(NIL)...|.ELSE...|
|00004c50| 09 09 6d 73 67 2e 6c 69 | 73 74 20 3a 3d 20 63 2e |..msg.li|st := c.|
|00004c60| 73 65 6c 3b 20 63 2e 73 | 65 6c 20 3a 3d 20 4e 49 |sel; c.s|el := NI|
|00004c70| 4c 3b 20 0d 09 09 09 09 | 6d 73 67 2e 73 68 6f 77 |L; .....|msg.show|
|00004c80| 20 3a 3d 20 46 41 4c 53 | 45 3b 20 56 69 65 77 73 | := FALS|E; Views|
|00004c90| 2e 42 72 6f 61 64 63 61 | 73 74 28 63 2e 76 69 65 |.Broadca|st(c.vie|
|00004ca0| 77 2c 20 6d 73 67 29 0d | 09 09 09 45 4e 44 0d 09 |w, msg).|...END..|
|00004cb0| 09 45 4e 44 0d 09 45 4e | 44 20 53 65 6c 65 63 74 |.END..EN|D Select|
|00004cc0| 41 6c 6c 3b 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |All;...P|ROCEDURE|
|00004cd0| 20 28 63 3a 20 53 74 64 | 43 6f 6e 74 72 6f 6c 6c | (c: Std|Controll|
|00004ce0| 65 72 29 20 49 6e 53 65 | 6c 65 63 74 69 6f 6e 20 |er) InSe|lection |
|00004cf0| 28 66 3a 20 56 69 65 77 | 73 2e 46 72 61 6d 65 3b |(f: View|s.Frame;|
|00004d00| 20 78 2c 20 79 3a 20 4c | 4f 4e 47 49 4e 54 29 3a | x, y: L|ONGINT):|
|00004d10| 20 42 4f 4f 4c 45 41 4e | 3b 0d 09 09 56 41 52 20 | BOOLEAN|;...VAR |
|00004d20| 67 3a 20 56 69 65 77 73 | 2e 46 72 61 6d 65 3b 0d |g: Views|.Frame;.|
|00004d30| 09 42 45 47 49 4e 0d 09 | 09 67 20 3a 3d 20 56 69 |.BEGIN..|.g := Vi|
|00004d40| 65 77 73 2e 46 72 61 6d | 65 41 74 28 66 2c 20 78 |ews.Fram|eAt(f, x|
|00004d50| 2c 20 79 29 3b 0d 09 09 | 49 46 20 67 20 23 20 4e |, y);...|IF g # N|
|00004d60| 49 4c 20 54 48 45 4e 0d | 09 09 09 52 45 54 55 52 |IL THEN.|...RETUR|
|00004d70| 4e 20 63 2e 49 73 53 65 | 6c 65 63 74 65 64 28 67 |N c.IsSe|lected(g|
|00004d80| 2e 76 69 65 77 29 0d 09 | 09 45 4c 53 45 0d 09 09 |.view)..|.ELSE...|
|00004d90| 09 52 45 54 55 52 4e 20 | 46 41 4c 53 45 0d 09 09 |.RETURN |FALSE...|
|00004da0| 45 4e 44 0d 09 45 4e 44 | 20 49 6e 53 65 6c 65 63 |END..END| InSelec|
|00004db0| 74 69 6f 6e 3b 0d 0d 09 | 50 52 4f 43 45 44 55 52 |tion;...|PROCEDUR|
|00004dc0| 45 20 28 63 3a 20 53 74 | 64 43 6f 6e 74 72 6f 6c |E (c: St|dControl|
|00004dd0| 6c 65 72 29 20 4d 61 72 | 6b 53 65 6c 65 63 74 69 |ler) Mar|kSelecti|
|00004de0| 6f 6e 20 28 66 3a 20 56 | 69 65 77 73 2e 46 72 61 |on (f: V|iews.Fra|
|00004df0| 6d 65 3b 20 73 68 6f 77 | 3a 20 42 4f 4f 4c 45 41 |me; show|: BOOLEA|
|00004e00| 4e 29 3b 0d 09 42 45 47 | 49 4e 0d 09 09 49 46 20 |N);..BEG|IN...IF |
|00004e10| 63 2e 73 65 6c 20 3d 20 | 4e 49 4c 20 54 48 45 4e |c.sel = |NIL THEN|
|00004e20| 09 28 2a 20 73 6b 69 70 | 20 2a 29 0d 09 09 45 4c |.(* skip| *)...EL|
|00004e30| 53 49 46 20 63 2e 73 65 | 6c 2e 6e 65 78 74 20 3d |SIF c.se|l.next =|
|00004e40| 20 4e 49 4c 20 54 48 45 | 4e 0d 09 09 09 43 6f 6e | NIL THE|N....Con|
|00004e50| 74 61 69 6e 65 72 73 2e | 4d 61 72 6b 53 69 6e 67 |tainers.|MarkSing|
|00004e60| 6c 65 74 6f 6e 28 63 2c | 20 66 2c 20 73 68 6f 77 |leton(c,| f, show|
|00004e70| 29 0d 09 09 45 4c 53 45 | 0d 09 09 09 4d 61 72 6b |)...ELSE|....Mark|
|00004e80| 4c 69 73 74 28 63 2c 20 | 66 2c 20 63 2e 73 65 6c |List(c, |f, c.sel|
|00004e90| 2c 20 73 68 6f 77 29 0d | 09 09 45 4e 44 0d 09 45 |, show).|..END..E|
|00004ea0| 4e 44 20 4d 61 72 6b 53 | 65 6c 65 63 74 69 6f 6e |ND MarkS|election|
|00004eb0| 3b 0d 0d 0d 09 28 2a 20 | 63 61 72 65 74 20 2a 29 |;....(* |caret *)|
|00004ec0| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 28 63 3a |...PROCE|DURE (c:|
|00004ed0| 20 53 74 64 43 6f 6e 74 | 72 6f 6c 6c 65 72 29 20 | StdCont|roller) |
|00004ee0| 48 61 73 43 61 72 65 74 | 20 28 29 3a 20 42 4f 4f |HasCaret| (): BOO|
|00004ef0| 4c 45 41 4e 3b 0d 09 42 | 45 47 49 4e 0d 09 09 52 |LEAN;..B|EGIN...R|
|00004f00| 45 54 55 52 4e 20 54 52 | 55 45 0d 09 45 4e 44 20 |ETURN TR|UE..END |
|00004f10| 48 61 73 43 61 72 65 74 | 3b 0d 0d 09 50 52 4f 43 |HasCaret|;...PROC|
|00004f20| 45 44 55 52 45 20 28 63 | 3a 20 53 74 64 43 6f 6e |EDURE (c|: StdCon|
|00004f30| 74 72 6f 6c 6c 65 72 29 | 20 4d 61 72 6b 43 61 72 |troller)| MarkCar|
|00004f40| 65 74 20 28 66 3a 20 56 | 69 65 77 73 2e 46 72 61 |et (f: V|iews.Fra|
|00004f50| 6d 65 3b 20 73 68 6f 77 | 3a 20 42 4f 4f 4c 45 41 |me; show|: BOOLEA|
|00004f60| 4e 29 3b 0d 09 45 4e 44 | 20 4d 61 72 6b 43 61 72 |N);..END| MarkCar|
|00004f70| 65 74 3b 0d 0d 0d 09 28 | 2a 20 46 6f 72 6d 43 6f |et;....(|* FormCo|
|00004f80| 6e 74 72 6f 6c 6c 65 72 | 20 70 72 6f 74 6f 63 6f |ntroller| protoco|
|00004f90| 6c 20 2a 29 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |l *)...P|ROCEDURE|
|00004fa0| 20 28 63 3a 20 53 74 64 | 43 6f 6e 74 72 6f 6c 6c | (c: Std|Controll|
|00004fb0| 65 72 29 20 53 65 6c 65 | 63 74 20 28 76 69 65 77 |er) Sele|ct (view|
|00004fc0| 3a 20 56 69 65 77 73 2e | 56 69 65 77 29 3b 0d 09 |: Views.|View);..|
|00004fd0| 09 56 41 52 20 6c 2c 20 | 68 2c 20 73 65 6c 3a 20 |.VAR l, |h, sel: |
|00004fe0| 4c 69 73 74 3b 20 6d 73 | 67 3a 20 4d 61 72 6b 4d |List; ms|g: MarkM|
|00004ff0| 73 67 3b 0d 09 42 45 47 | 49 4e 0d 09 09 41 53 53 |sg;..BEG|IN...ASS|
|00005000| 45 52 54 28 76 69 65 77 | 20 23 20 4e 49 4c 2c 20 |ERT(view| # NIL, |
|00005010| 32 30 29 3b 20 41 53 53 | 45 52 54 28 76 69 65 77 |20); ASS|ERT(view|
|00005020| 2e 63 6f 6e 74 65 78 74 | 2e 54 68 69 73 4d 6f 64 |.context|.ThisMod|
|00005030| 65 6c 28 29 20 3d 20 63 | 2e 66 6f 72 6d 2c 20 32 |el() = c|.form, 2|
|00005040| 31 29 3b 0d 09 09 41 53 | 53 45 52 54 28 7e 28 43 |1);...AS|SERT(~(C|
|00005050| 6f 6e 74 61 69 6e 65 72 | 73 2e 6e 6f 53 65 6c 65 |ontainer|s.noSele|
|00005060| 63 74 69 6f 6e 20 49 4e | 20 63 2e 6f 70 74 73 29 |ction IN| c.opts)|
|00005070| 2c 20 32 32 29 3b 0d 09 | 09 6c 20 3a 3d 20 63 2e |, 22);..|.l := c.|
|00005080| 73 65 6c 3b 20 57 48 49 | 4c 45 20 28 6c 20 23 20 |sel; WHI|LE (l # |
|00005090| 4e 49 4c 29 20 26 20 28 | 6c 2e 76 69 65 77 20 23 |NIL) & (|l.view #|
|000050a0| 20 76 69 65 77 29 20 44 | 4f 20 6c 20 3a 3d 20 6c | view) D|O l := l|
|000050b0| 2e 6e 65 78 74 20 45 4e | 44 3b 0d 09 09 49 46 20 |.next EN|D;...IF |
|000050c0| 6c 20 3d 20 4e 49 4c 20 | 54 48 45 4e 09 28 2a 20 |l = NIL |THEN.(* |
|000050d0| 76 69 65 77 20 69 73 20 | 6e 6f 74 20 79 65 74 20 |view is |not yet |
|000050e0| 73 65 6c 65 63 74 65 64 | 20 2a 29 0d 09 09 09 73 |selected| *)....s|
|000050f0| 65 6c 20 3a 3d 20 63 2e | 73 65 6c 3b 0d 09 09 09 |el := c.|sel;....|
|00005100| 49 46 20 73 65 6c 20 3d | 20 4e 49 4c 20 54 48 45 |IF sel =| NIL THE|
|00005110| 4e 0d 09 09 09 09 63 2e | 53 65 74 53 69 6e 67 6c |N.....c.|SetSingl|
|00005120| 65 74 6f 6e 28 76 69 65 | 77 29 0d 09 09 09 45 4c |eton(vie|w)....EL|
|00005130| 53 45 0d 09 09 09 09 4e | 45 57 28 6c 29 3b 20 6c |SE.....N|EW(l); l|
|00005140| 2e 76 69 65 77 20 3a 3d | 20 76 69 65 77 3b 0d 09 |.view :=| view;..|
|00005150| 09 09 09 49 46 20 73 65 | 6c 2e 6e 65 78 74 20 3d |...IF se|l.next =|
|00005160| 20 4e 49 4c 20 54 48 45 | 4e 0d 09 09 09 09 09 63 | NIL THE|N......c|
|00005170| 2e 53 65 74 53 69 6e 67 | 6c 65 74 6f 6e 28 4e 49 |.SetSing|leton(NI|
|00005180| 4c 29 3b 20 41 53 53 45 | 52 54 28 63 2e 73 65 6c |L); ASSE|RT(c.sel|
|00005190| 20 3d 20 4e 49 4c 2c 20 | 31 30 30 29 3b 0d 09 09 | = NIL, |100);...|
|000051a0| 09 09 09 6c 2e 6e 65 78 | 74 20 3a 3d 20 73 65 6c |...l.nex|t := sel|
|000051b0| 3b 20 63 2e 73 65 6c 20 | 3a 3d 20 6c 3b 0d 09 09 |; c.sel |:= l;...|
|000051c0| 09 09 09 6d 73 67 2e 6c | 69 73 74 20 3a 3d 20 6c |...msg.l|ist := l|
|000051d0| 0d 09 09 09 09 45 4c 53 | 45 0d 09 09 09 09 09 6c |.....ELS|E......l|
|000051e0| 2e 6e 65 78 74 20 3a 3d | 20 73 65 6c 3b 20 63 2e |.next :=| sel; c.|
|000051f0| 73 65 6c 20 3a 3d 20 6c | 3b 0d 09 09 09 09 09 4e |sel := l|;......N|
|00005200| 45 57 28 68 29 3b 20 68 | 2e 76 69 65 77 20 3a 3d |EW(h); h|.view :=|
|00005210| 20 76 69 65 77 3b 0d 09 | 09 09 09 09 6d 73 67 2e | view;..|....msg.|
|00005220| 6c 69 73 74 20 3a 3d 20 | 68 0d 09 09 09 09 45 4e |list := |h.....EN|
|00005230| 44 3b 0d 09 09 09 09 6d | 73 67 2e 73 68 6f 77 20 |D;.....m|sg.show |
|00005240| 3a 3d 20 54 52 55 45 3b | 20 56 69 65 77 73 2e 42 |:= TRUE;| Views.B|
|00005250| 72 6f 61 64 63 61 73 74 | 28 63 2e 76 69 65 77 2c |roadcast|(c.view,|
|00005260| 20 6d 73 67 29 0d 09 09 | 09 45 4e 44 0d 09 09 45 | msg)...|.END...E|
|00005270| 4e 44 0d 09 45 4e 44 20 | 53 65 6c 65 63 74 3b 0d |ND..END |Select;.|
|00005280| 0d 09 50 52 4f 43 45 44 | 55 52 45 20 28 63 3a 20 |..PROCED|URE (c: |
|00005290| 53 74 64 43 6f 6e 74 72 | 6f 6c 6c 65 72 29 20 44 |StdContr|oller) D|
|000052a0| 65 73 65 6c 65 63 74 20 | 28 76 69 65 77 3a 20 56 |eselect |(view: V|
|000052b0| 69 65 77 73 2e 56 69 65 | 77 29 3b 0d 09 09 56 41 |iews.Vie|w);...VA|
|000052c0| 52 20 6c 2c 20 68 3a 20 | 4c 69 73 74 3b 20 6d 73 |R l, h: |List; ms|
|000052d0| 67 3a 20 4d 61 72 6b 4d | 73 67 3b 0d 09 42 45 47 |g: MarkM|sg;..BEG|
|000052e0| 49 4e 0d 09 09 41 53 53 | 45 52 54 28 76 69 65 77 |IN...ASS|ERT(view|
|000052f0| 20 23 20 4e 49 4c 2c 20 | 32 30 29 3b 20 41 53 53 | # NIL, |20); ASS|
|00005300| 45 52 54 28 76 69 65 77 | 2e 63 6f 6e 74 65 78 74 |ERT(view|.context|
|00005310| 2e 54 68 69 73 4d 6f 64 | 65 6c 28 29 20 3d 20 63 |.ThisMod|el() = c|
|00005320| 2e 66 6f 72 6d 2c 20 32 | 31 29 3b 0d 09 09 6c 20 |.form, 2|1);...l |
|00005330| 3a 3d 20 63 2e 73 65 6c | 3b 20 68 20 3a 3d 20 4e |:= c.sel|; h := N|
|00005340| 49 4c 3b 20 57 48 49 4c | 45 20 28 6c 20 23 20 4e |IL; WHIL|E (l # N|
|00005350| 49 4c 29 20 26 20 28 6c | 2e 76 69 65 77 20 23 20 |IL) & (l|.view # |
|00005360| 76 69 65 77 29 20 44 4f | 20 68 20 3a 3d 20 6c 3b |view) DO| h := l;|
|00005370| 20 6c 20 3a 3d 20 6c 2e | 6e 65 78 74 20 45 4e 44 | l := l.|next END|
|00005380| 3b 0d 09 09 49 46 20 6c | 20 23 20 4e 49 4c 20 54 |;...IF l| # NIL T|
|00005390| 48 45 4e 09 28 2a 20 6c | 20 69 73 20 73 65 6c 65 |HEN.(* l| is sele|
|000053a0| 63 74 69 6f 6e 20 6e 6f | 64 65 20 6f 66 20 76 69 |ction no|de of vi|
|000053b0| 65 77 2c 20 68 20 69 74 | 73 20 70 72 65 64 65 63 |ew, h it|s predec|
|000053c0| 65 73 73 6f 72 20 2a 29 | 0d 09 09 09 49 46 20 28 |essor *)|....IF (|
|000053d0| 68 20 3d 20 4e 49 4c 29 | 20 26 20 28 6c 2e 6e 65 |h = NIL)| & (l.ne|
|000053e0| 78 74 20 3d 20 4e 49 4c | 29 20 54 48 45 4e 09 28 |xt = NIL|) THEN.(|
|000053f0| 2a 20 73 69 6e 67 6c 65 | 74 6f 6e 20 2a 29 0d 09 |* single|ton *)..|
|00005400| 09 09 09 63 2e 53 65 74 | 53 69 6e 67 6c 65 74 6f |...c.Set|Singleto|
|00005410| 6e 28 4e 49 4c 29 0d 09 | 09 09 45 4c 53 45 0d 09 |n(NIL)..|..ELSE..|
|00005420| 09 09 09 49 46 20 68 20 | 3d 20 4e 49 4c 20 54 48 |...IF h |= NIL TH|
|00005430| 45 4e 20 63 2e 73 65 6c | 20 3a 3d 20 6c 2e 6e 65 |EN c.sel| := l.ne|
|00005440| 78 74 20 45 4c 53 45 20 | 68 2e 6e 65 78 74 20 3a |xt ELSE |h.next :|
|00005450| 3d 20 6c 2e 6e 65 78 74 | 20 45 4e 44 3b 0d 09 09 |= l.next| END;...|
|00005460| 09 09 6d 73 67 2e 6c 69 | 73 74 3a 3d 20 6c 3b 20 |..msg.li|st:= l; |
|00005470| 6c 2e 6e 65 78 74 20 3a | 3d 20 4e 49 4c 3b 20 6d |l.next :|= NIL; m|
|00005480| 73 67 2e 73 68 6f 77 20 | 3a 3d 20 46 41 4c 53 45 |sg.show |:= FALSE|
|00005490| 3b 20 56 69 65 77 73 2e | 42 72 6f 61 64 63 61 73 |; Views.|Broadcas|
|000054a0| 74 28 63 2e 76 69 65 77 | 2c 20 6d 73 67 29 3b 0d |t(c.view|, msg);.|
|000054b0| 09 09 09 09 49 46 20 28 | 63 2e 73 65 6c 20 23 20 |....IF (|c.sel # |
|000054c0| 4e 49 4c 29 20 26 20 28 | 63 2e 73 65 6c 2e 6e 65 |NIL) & (|c.sel.ne|
|000054d0| 78 74 20 3d 20 4e 49 4c | 29 20 54 48 45 4e 09 28 |xt = NIL|) THEN.(|
|000054e0| 2a 20 73 69 6e 67 6c 65 | 74 6f 6e 20 2a 29 0d 09 |* single|ton *)..|
|000054f0| 09 09 09 09 76 69 65 77 | 20 3a 3d 20 63 2e 73 65 |....view| := c.se|
|00005500| 6c 2e 76 69 65 77 3b 0d | 09 09 09 09 09 6d 73 67 |l.view;.|.....msg|
|00005510| 2e 6c 69 73 74 20 3a 3d | 20 63 2e 73 65 6c 3b 20 |.list :=| c.sel; |
|00005520| 63 2e 73 65 6c 20 3a 3d | 20 4e 49 4c 3b 20 0d 09 |c.sel :=| NIL; ..|
|00005530| 09 09 09 09 6d 73 67 2e | 73 68 6f 77 20 3a 3d 20 |....msg.|show := |
|00005540| 54 52 55 45 3b 20 56 69 | 65 77 73 2e 42 72 6f 61 |TRUE; Vi|ews.Broa|
|00005550| 64 63 61 73 74 28 63 2e | 76 69 65 77 2c 20 6d 73 |dcast(c.|view, ms|
|00005560| 67 29 3b 0d 09 09 09 09 | 09 63 2e 53 65 74 53 69 |g);.....|.c.SetSi|
|00005570| 6e 67 6c 65 74 6f 6e 28 | 76 69 65 77 29 0d 09 09 |ngleton(|view)...|
|00005580| 09 09 45 4e 44 0d 09 09 | 09 45 4e 44 0d 09 09 45 |..END...|.END...E|
|00005590| 4e 44 0d 09 45 4e 44 20 | 44 65 73 65 6c 65 63 74 |ND..END |Deselect|
|000055a0| 3b 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 28 63 |;...PROC|EDURE (c|
|000055b0| 3a 20 53 74 64 43 6f 6e | 74 72 6f 6c 6c 65 72 29 |: StdCon|troller)|
|000055c0| 20 49 73 53 65 6c 65 63 | 74 65 64 20 28 76 69 65 | IsSelec|ted (vie|
|000055d0| 77 3a 20 56 69 65 77 73 | 2e 56 69 65 77 29 3a 20 |w: Views|.View): |
|000055e0| 42 4f 4f 4c 45 41 4e 3b | 0d 09 09 56 41 52 20 6c |BOOLEAN;|...VAR l|
|000055f0| 3a 20 4c 69 73 74 3b 0d | 09 42 45 47 49 4e 0d 09 |: List;.|.BEGIN..|
|00005600| 09 41 53 53 45 52 54 28 | 76 69 65 77 20 23 20 4e |.ASSERT(|view # N|
|00005610| 49 4c 2c 20 32 30 29 3b | 20 41 53 53 45 52 54 28 |IL, 20);| ASSERT(|
|00005620| 76 69 65 77 2e 63 6f 6e | 74 65 78 74 2e 54 68 69 |view.con|text.Thi|
|00005630| 73 4d 6f 64 65 6c 28 29 | 20 3d 20 63 2e 66 6f 72 |sModel()| = c.for|
|00005640| 6d 2c 20 32 31 29 3b 0d | 09 09 6c 20 3a 3d 20 63 |m, 21);.|..l := c|
|00005650| 2e 73 65 6c 3b 20 57 48 | 49 4c 45 20 28 6c 20 23 |.sel; WH|ILE (l #|
|00005660| 20 4e 49 4c 29 20 26 20 | 28 6c 2e 76 69 65 77 20 | NIL) & |(l.view |
|00005670| 23 20 76 69 65 77 29 20 | 44 4f 20 6c 20 3a 3d 20 |# view) |DO l := |
|00005680| 6c 2e 6e 65 78 74 20 45 | 4e 44 3b 0d 09 09 52 45 |l.next E|ND;...RE|
|00005690| 54 55 52 4e 20 6c 20 23 | 20 4e 49 4c 0d 09 45 4e |TURN l #| NIL..EN|
|000056a0| 44 20 49 73 53 65 6c 65 | 63 74 65 64 3b 0d 0d 09 |D IsSele|cted;...|
|000056b0| 50 52 4f 43 45 44 55 52 | 45 20 28 63 3a 20 53 74 |PROCEDUR|E (c: St|
|000056c0| 64 43 6f 6e 74 72 6f 6c | 6c 65 72 29 20 47 65 74 |dControl|ler) Get|
|000056d0| 53 65 6c 65 63 74 69 6f | 6e 20 28 29 3a 20 4c 69 |Selectio|n (): Li|
|000056e0| 73 74 3b 0d 09 09 56 41 | 52 20 6c 2c 20 68 2c 20 |st;...VA|R l, h, |
|000056f0| 73 3a 20 4c 69 73 74 3b | 0d 09 42 45 47 49 4e 0d |s: List;|..BEGIN.|
|00005700| 09 09 6c 20 3a 3d 20 4e | 49 4c 3b 20 73 20 3a 3d |..l := N|IL; s :=|
|00005710| 20 63 2e 73 65 6c 3b 0d | 09 09 57 48 49 4c 45 20 | c.sel;.|..WHILE |
|00005720| 73 20 23 20 4e 49 4c 20 | 44 4f 20 4e 45 57 28 68 |s # NIL |DO NEW(h|
|00005730| 29 3b 20 68 2e 6e 65 78 | 74 20 3a 3d 20 6c 3b 20 |); h.nex|t := l; |
|00005740| 6c 20 3a 3d 20 68 3b 20 | 68 2e 76 69 65 77 20 3a |l := h; |h.view :|
|00005750| 3d 20 73 2e 76 69 65 77 | 3b 20 73 20 3a 3d 20 73 |= s.view|; s := s|
|00005760| 2e 6e 65 78 74 20 45 4e | 44 3b 0d 09 09 52 45 54 |.next EN|D;...RET|
|00005770| 55 52 4e 20 6c 0d 09 45 | 4e 44 20 47 65 74 53 65 |URN l..E|ND GetSe|
|00005780| 6c 65 63 74 69 6f 6e 3b | 0d 0d 09 50 52 4f 43 45 |lection;|...PROCE|
|00005790| 44 55 52 45 20 28 63 3a | 20 53 74 64 43 6f 6e 74 |DURE (c:| StdCont|
|000057a0| 72 6f 6c 6c 65 72 29 20 | 53 65 74 53 65 6c 65 63 |roller) |SetSelec|
|000057b0| 74 69 6f 6e 20 28 6c 3a | 20 4c 69 73 74 29 3b 0d |tion (l:| List);.|
|000057c0| 09 09 56 41 52 20 6d 73 | 67 3a 20 4d 61 72 6b 4d |..VAR ms|g: MarkM|
|000057d0| 73 67 3b 0d 09 42 45 47 | 49 4e 0d 09 09 63 2e 53 |sg;..BEG|IN...c.S|
|000057e0| 65 6c 65 63 74 41 6c 6c | 28 46 41 4c 53 45 29 3b |electAll|(FALSE);|
|000057f0| 20 41 53 53 45 52 54 28 | 63 2e 73 65 6c 20 3d 20 | ASSERT(|c.sel = |
|00005800| 4e 49 4c 2c 20 31 30 30 | 29 3b 0d 09 09 49 46 20 |NIL, 100|);...IF |
|00005810| 6c 20 3d 20 4e 49 4c 20 | 54 48 45 4e 09 28 2a 20 |l = NIL |THEN.(* |
|00005820| 73 6b 69 70 20 2a 29 0d | 09 09 45 4c 53 49 46 20 |skip *).|..ELSIF |
|00005830| 6c 2e 6e 65 78 74 20 3d | 20 4e 49 4c 20 54 48 45 |l.next =| NIL THE|
|00005840| 4e 0d 09 09 09 63 2e 53 | 65 74 53 69 6e 67 6c 65 |N....c.S|etSingle|
|00005850| 74 6f 6e 28 6c 2e 76 69 | 65 77 29 0d 09 09 45 4c |ton(l.vi|ew)...EL|
|00005860| 53 45 0d 09 09 09 6d 73 | 67 2e 6c 69 73 74 20 3a |SE....ms|g.list :|
|00005870| 3d 20 6c 3b 20 63 2e 73 | 65 6c 20 3a 3d 20 6c 3b |= l; c.s|el := l;|
|00005880| 20 0d 09 09 09 6d 73 67 | 2e 73 68 6f 77 20 3a 3d | ....msg|.show :=|
|00005890| 20 54 52 55 45 3b 20 56 | 69 65 77 73 2e 42 72 6f | TRUE; V|iews.Bro|
|000058a0| 61 64 63 61 73 74 28 63 | 2e 76 69 65 77 2c 20 6d |adcast(c|.view, m|
|000058b0| 73 67 29 0d 09 09 45 4e | 44 0d 09 45 4e 44 20 53 |sg)...EN|D..END S|
|000058c0| 65 74 53 65 6c 65 63 74 | 69 6f 6e 3b 0d 0d 0d 09 |etSelect|ion;....|
|000058d0| 28 2a 20 53 74 64 44 69 | 72 65 63 74 6f 72 79 20 |(* StdDi|rectory |
|000058e0| 2a 29 0d 0d 09 50 52 4f | 43 45 44 55 52 45 20 28 |*)...PRO|CEDURE (|
|000058f0| 64 3a 20 53 74 64 44 69 | 72 65 63 74 6f 72 79 29 |d: StdDi|rectory)|
|00005900| 20 4e 65 77 43 6f 6e 74 | 72 6f 6c 6c 65 72 20 28 | NewCont|roller (|
|00005910| 6f 70 74 73 3a 20 53 45 | 54 29 3a 20 43 6f 6e 74 |opts: SE|T): Cont|
|00005920| 72 6f 6c 6c 65 72 3b 0d | 09 09 56 41 52 20 63 3a |roller;.|..VAR c:|
|00005930| 20 53 74 64 43 6f 6e 74 | 72 6f 6c 6c 65 72 3b 0d | StdCont|roller;.|
|00005940| 09 42 45 47 49 4e 0d 09 | 09 4e 45 57 28 63 29 3b |.BEGIN..|.NEW(c);|
|00005950| 20 63 2e 53 65 74 4f 70 | 74 73 28 6f 70 74 73 29 | c.SetOp|ts(opts)|
|00005960| 3b 20 52 45 54 55 52 4e | 20 63 0d 09 45 4e 44 20 |; RETURN| c..END |
|00005970| 4e 65 77 43 6f 6e 74 72 | 6f 6c 6c 65 72 3b 0d 0d |NewContr|oller;..|
|00005980| 09 50 52 4f 43 45 44 55 | 52 45 20 28 64 3a 20 53 |.PROCEDU|RE (d: S|
|00005990| 74 64 44 69 72 65 63 74 | 6f 72 79 29 20 4e 65 77 |tdDirect|ory) New|
|000059a0| 56 69 65 77 20 28 66 3a | 20 46 6f 72 6d 4d 6f 64 |View (f:| FormMod|
|000059b0| 65 6c 73 2e 4d 6f 64 65 | 6c 3b 20 6f 70 74 73 3a |els.Mode|l; opts:|
|000059c0| 20 53 45 54 29 3a 20 46 | 6f 72 6d 56 69 65 77 73 | SET): F|ormViews|
|000059d0| 2e 56 69 65 77 3b 0d 09 | 09 56 41 52 20 63 3a 20 |.View;..|.VAR c: |
|000059e0| 43 6f 6e 74 61 69 6e 65 | 72 73 2e 43 6f 6e 74 72 |Containe|rs.Contr|
|000059f0| 6f 6c 6c 65 72 3b 20 76 | 3a 20 46 6f 72 6d 56 69 |oller; v|: FormVi|
|00005a00| 65 77 73 2e 56 69 65 77 | 3b 0d 09 42 45 47 49 4e |ews.View|;..BEGIN|
|00005a10| 0d 09 09 76 20 3a 3d 20 | 46 6f 72 6d 56 69 65 77 |...v := |FormView|
|00005a20| 73 2e 64 69 72 2e 4e 65 | 77 28 66 29 3b 20 63 20 |s.dir.Ne|w(f); c |
|00005a30| 3a 3d 20 76 2e 54 68 69 | 73 43 6f 6e 74 72 6f 6c |:= v.Thi|sControl|
|00005a40| 6c 65 72 28 29 3b 0d 09 | 09 49 46 20 63 20 23 20 |ler();..|.IF c # |
|00005a50| 4e 49 4c 20 54 48 45 4e | 20 63 2e 53 65 74 4f 70 |NIL THEN| c.SetOp|
|00005a60| 74 73 28 6f 70 74 73 29 | 20 45 4c 53 45 20 76 2e |ts(opts)| ELSE v.|
|00005a70| 53 65 74 43 6f 6e 74 72 | 6f 6c 6c 65 72 28 64 2e |SetContr|oller(d.|
|00005a80| 4e 65 77 43 6f 6e 74 72 | 6f 6c 6c 65 72 28 6f 70 |NewContr|oller(op|
|00005a90| 74 73 29 29 20 45 4e 44 | 3b 0d 09 09 52 45 54 55 |ts)) END|;...RETU|
|00005aa0| 52 4e 20 76 0d 09 45 4e | 44 20 4e 65 77 56 69 65 |RN v..EN|D NewVie|
|00005ab0| 77 3b 0d 0d 0d 09 28 2a | 2a 20 6d 69 73 63 65 6c |w;....(*|* miscel|
|00005ac0| 6c 61 6e 65 6f 75 73 20 | 2a 2a 29 0d 0d 09 50 52 |laneous |**)...PR|
|00005ad0| 4f 43 45 44 55 52 45 20 | 46 6f 63 75 73 2a 20 28 |OCEDURE |Focus* (|
|00005ae0| 29 3a 20 43 6f 6e 74 72 | 6f 6c 6c 65 72 3b 0d 09 |): Contr|oller;..|
|00005af0| 09 56 41 52 20 76 3a 20 | 56 69 65 77 73 2e 56 69 |.VAR v: |Views.Vi|
|00005b00| 65 77 3b 20 63 3a 20 43 | 6f 6e 74 72 6f 6c 6c 65 |ew; c: C|ontrolle|
|00005b10| 72 73 2e 43 6f 6e 74 72 | 6f 6c 6c 65 72 3b 0d 09 |rs.Contr|oller;..|
|00005b20| 42 45 47 49 4e 0d 09 09 | 76 20 3a 3d 20 43 6f 6e |BEGIN...|v := Con|
|00005b30| 74 72 6f 6c 6c 65 72 73 | 2e 46 6f 63 75 73 56 69 |trollers|.FocusVi|
|00005b40| 65 77 28 29 3b 0d 09 09 | 49 46 20 28 76 20 23 20 |ew();...|IF (v # |
|00005b50| 4e 49 4c 29 20 26 20 28 | 76 20 49 53 20 46 6f 72 |NIL) & (|v IS For|
|00005b60| 6d 56 69 65 77 73 2e 56 | 69 65 77 29 20 54 48 45 |mViews.V|iew) THE|
|00005b70| 4e 0d 09 09 09 63 20 3a | 3d 20 76 28 46 6f 72 6d |N....c :|= v(Form|
|00005b80| 56 69 65 77 73 2e 56 69 | 65 77 29 2e 54 68 69 73 |Views.Vi|ew).This|
|00005b90| 43 6f 6e 74 72 6f 6c 6c | 65 72 28 29 3b 0d 09 09 |Controll|er();...|
|00005ba0| 09 49 46 20 28 63 20 23 | 20 4e 49 4c 29 20 26 20 |.IF (c #| NIL) & |
|00005bb0| 28 63 20 49 53 20 43 6f | 6e 74 72 6f 6c 6c 65 72 |(c IS Co|ntroller|
|00005bc0| 29 20 54 48 45 4e 0d 09 | 09 09 09 52 45 54 55 52 |) THEN..|...RETUR|
|00005bd0| 4e 20 63 28 43 6f 6e 74 | 72 6f 6c 6c 65 72 29 0d |N c(Cont|roller).|
|00005be0| 09 09 09 45 4c 53 45 20 | 52 45 54 55 52 4e 20 4e |...ELSE |RETURN N|
|00005bf0| 49 4c 0d 09 09 09 45 4e | 44 0d 09 09 45 4c 53 45 |IL....EN|D...ELSE|
|00005c00| 20 52 45 54 55 52 4e 20 | 4e 49 4c 0d 09 09 45 4e | RETURN |NIL...EN|
|00005c10| 44 0d 09 45 4e 44 20 46 | 6f 63 75 73 3b 0d 0d 09 |D..END F|ocus;...|
|00005c20| 50 52 4f 43 45 44 55 52 | 45 20 49 6e 73 65 72 74 |PROCEDUR|E Insert|
|00005c30| 2a 20 28 63 3a 20 43 6f | 6e 74 72 6f 6c 6c 65 72 |* (c: Co|ntroller|
|00005c40| 3b 20 76 69 65 77 3a 20 | 56 69 65 77 73 2e 56 69 |; view: |Views.Vi|
|00005c50| 65 77 3b 20 6c 2c 20 74 | 2c 20 72 2c 20 62 3a 20 |ew; l, t|, r, b: |
|00005c60| 4c 4f 4e 47 49 4e 54 29 | 3b 0d 09 09 56 41 52 20 |LONGINT)|;...VAR |
|00005c70| 77 2c 20 68 3a 20 4c 4f | 4e 47 49 4e 54 3b 0d 09 |w, h: LO|NGINT;..|
|00005c80| 42 45 47 49 4e 0d 09 09 | 77 20 3a 3d 20 72 20 2d |BEGIN...|w := r -|
|00005c90| 20 6c 3b 20 68 20 3a 3d | 20 62 20 2d 20 74 3b 0d | l; h :=| b - t;.|
|00005ca0| 09 09 46 6f 72 6d 56 69 | 65 77 73 2e 52 6f 75 6e |..FormVi|ews.Roun|
|00005cb0| 64 54 6f 47 72 69 64 28 | 63 2e 76 69 65 77 2c 20 |dToGrid(|c.view, |
|00005cc0| 6c 2c 20 74 29 3b 0d 09 | 09 63 2e 66 6f 72 6d 2e |l, t);..|.c.form.|
|00005cd0| 49 6e 73 65 72 74 28 76 | 69 65 77 2c 20 6c 2c 20 |Insert(v|iew, l, |
|00005ce0| 74 2c 20 6c 20 2b 20 77 | 2c 20 74 20 2b 20 68 29 |t, l + w|, t + h)|
|00005cf0| 0d 09 45 4e 44 20 49 6e | 73 65 72 74 3b 0d 0d 09 |..END In|sert;...|
|00005d00| 50 52 4f 43 45 44 55 52 | 45 20 53 65 74 44 69 72 |PROCEDUR|E SetDir|
|00005d10| 2a 20 28 64 3a 20 44 69 | 72 65 63 74 6f 72 79 29 |* (d: Di|rectory)|
|00005d20| 3b 0d 09 42 45 47 49 4e | 0d 09 09 41 53 53 45 52 |;..BEGIN|...ASSER|
|00005d30| 54 28 64 20 23 20 4e 49 | 4c 2c 20 32 30 29 3b 20 |T(d # NI|L, 20); |
|00005d40| 64 69 72 20 3a 3d 20 64 | 0d 09 45 4e 44 20 53 65 |dir := d|..END Se|
|00005d50| 74 44 69 72 3b 0d 0d 09 | 50 52 4f 43 45 44 55 52 |tDir;...|PROCEDUR|
|00005d60| 45 20 49 6e 73 74 61 6c | 6c 2a 3b 0d 09 42 45 47 |E Instal|l*;..BEG|
|00005d70| 49 4e 0d 09 09 46 6f 72 | 6d 56 69 65 77 73 2e 53 |IN...For|mViews.S|
|00005d80| 65 74 43 74 72 6c 44 69 | 72 28 64 69 72 29 0d 09 |etCtrlDi|r(dir)..|
|00005d90| 45 4e 44 20 49 6e 73 74 | 61 6c 6c 3b 0d 0d 09 50 |END Inst|all;...P|
|00005da0| 52 4f 43 45 44 55 52 45 | 20 49 6e 69 74 3b 0d 09 |ROCEDURE| Init;..|
|00005db0| 09 56 41 52 20 64 3a 20 | 53 74 64 44 69 72 65 63 |.VAR d: |StdDirec|
|00005dc0| 74 6f 72 79 3b 0d 09 42 | 45 47 49 4e 0d 09 09 4e |tory;..B|EGIN...N|
|00005dd0| 45 57 28 64 29 3b 20 53 | 65 74 44 69 72 28 64 29 |EW(d); S|etDir(d)|
|00005de0| 3b 20 73 74 64 44 69 72 | 20 3a 3d 20 64 0d 09 45 |; stdDir| := d..E|
|00005df0| 4e 44 20 49 6e 69 74 3b | 0d 0d 42 45 47 49 4e 0d |ND Init;|..BEGIN.|
|00005e00| 09 49 6e 69 74 0d 45 4e | 44 20 46 6f 72 6d 43 6f |.Init.EN|D FormCo|
|00005e10| 6e 74 72 6f 6c 6c 65 72 | 73 2e 0d 82 f1 54 65 78 |ntroller|s....Tex|
|00005e20| 74 43 6f 6e 74 72 6f 6c | 6c 65 72 73 2e 53 74 64 |tControl|lers.Std|
|00005e30| 43 74 72 6c 44 65 73 63 | 00 f1 54 65 78 74 43 6f |CtrlDesc|..TextCo|
|00005e40| 6e 74 72 6f 6c 6c 65 72 | 73 2e 43 6f 6e 74 72 6f |ntroller|s.Contro|
|00005e50| 6c 6c 65 72 44 65 73 63 | 00 f1 43 6f 6e 74 61 69 |llerDesc|..Contai|
|00005e60| 6e 65 72 73 2e 43 6f 6e | 74 72 6f 6c 6c 65 72 44 |ners.Con|trollerD|
|00005e70| 65 73 63 00 f1 43 6f 6e | 74 72 6f 6c 6c 65 72 73 |esc..Con|trollers|
|00005e80| 2e 43 6f 6e 74 72 6f 6c | 6c 65 72 44 65 73 63 00 |.Control|lerDesc.|
|00005e90| f2 04 00 00 00 00 00 00 | 00 14 00 00 00 00 00 00 |........|........|
|00005ea0| 00 09 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005eb0| 01 82 f1 54 65 78 74 52 | 75 6c 65 72 73 2e 53 74 |...TextR|ulers.St|
|00005ec0| 64 52 75 6c 65 72 44 65 | 73 63 00 f1 54 65 78 74 |dRulerDe|sc..Text|
|00005ed0| 52 75 6c 65 72 73 2e 52 | 75 6c 65 72 44 65 73 63 |Rulers.R|ulerDesc|
|00005ee0| 00 f2 03 00 00 00 00 00 | 00 00 ab 00 00 00 07 00 |........|........|
|00005ef0| 00 00 a3 00 00 00 00 00 | 00 83 f1 54 65 78 74 52 |........|...TextR|
|00005f00| 75 6c 65 72 73 2e 53 74 | 64 53 74 79 6c 65 44 65 |ulers.St|dStyleDe|
|00005f10| 73 63 00 f1 54 65 78 74 | 52 75 6c 65 72 73 2e 53 |sc..Text|Rulers.S|
|00005f20| 74 79 6c 65 44 65 73 63 | 00 f2 07 00 00 00 00 00 |tyleDesc|........|
|00005f30| 00 00 00 00 00 00 08 00 | 00 00 5a 00 00 00 00 00 |........|..Z.....|
|00005f40| 00 00 82 f1 54 65 78 74 | 52 75 6c 65 72 73 2e 41 |....Text|Rulers.A|
|00005f50| 74 74 72 69 62 75 74 65 | 73 44 65 73 63 00 f2 04 |ttribute|sDesc...|
|00005f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 24 |........|.......$|
|00005f70| 00 00 00 00 01 00 00 00 | 00 00 00 00 00 c0 65 52 |........|......eR|
|00005f80| 00 00 00 00 00 18 f0 01 | 00 38 63 00 00 01 00 00 |........|.8c.....|
|00005f90| 00 01 00 00 00 00 00 00 | 00 82 f2 0d 00 00 00 00 |........|........|
|00005fa0| 00 00 00 00 00 00 00 00 | 00 00 00 22 00 00 00 00 |........|..."....|
|00005fb0| 00 00 00 00 00 00 00 00 | 00 48 65 6c 76 65 74 69 |........|.Helveti|
|00005fc0| 63 61 00 7c be 01 00 00 | 00 00 00 90 01 00 00 00 |ca.|....|........|
|00005fd0| 00 00 00 00 00 00 00 00 | 00 e0 8c 01 00 e0 8c 01 |........|........|
|00005fe0| 00 60 d9 52 00 e0 b9 3b | 3e 82 f1 44 6f 63 75 6d |.`.R...;|>..Docum|
|00005ff0| 65 6e 74 73 2e 43 6f 6e | 74 72 6f 6c 6c 65 72 44 |ents.Con|trollerD|
|00006000| 65 73 63 00 f2 10 00 00 | 00 00 00 00 00 00 00 00 |esc.....|........|
|00006010| 00 00 00 00 00 08 00 00 | 00 00 00 00 00 00 09 00 |........|........|
|00006020| 00 00 00 68 63 73 00 38 | 1b a3 00 80 fc 0a 00 00 |...hcs.8|........|
|00006030| 2f 0d 00 29 51 5c 00 29 | 71 8a 00 00 00 00 00 00 |/..)Q\.)|q.......|
|00006040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006080| 00 00 01 00 00 00 01 0c | 00 00 00 0c 00 00 00 32 |........|.......2|
|00006090| 00 00 00 04 01 7d a1 8d | 00 01 a1 9e 00 02 a2 8a |.....}..|........|
|000060a0| 00 0a 07 00 00 00 00 04 | 01 8a a2 bd 00 01 a2 c0 |........|........|
|000060b0| 0b 43 6f 6e 74 72 6f 6c | 6c 65 72 73 02 00 00 00 |.Control|lers....|
|000060c0| 50 61 72 74 53 49 54 21 | 00 00 00 00 00 00 00 00 |PartSIT!|........|
|000060d0| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|000060e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000060f0| 00 00 ae 04 81 74 00 00 | 00 00 00 00 01 3e a8 4e |.....t..|.....>.N|
|00006100| 00 02 a8 62 00 03 07 00 | 00 00 00 04 01 c5 a8 66 |...b....|.......f|
|00006110| 00 02 a8 6b 00 01 a8 73 | 00 03 07 00 00 00 00 04 |...k...s|........|
|00006120| 01 cb a8 77 00 01 a8 79 | 00 05 a9 45 00 03 07 00 |...w...y|...E....|
|00006130| 00 00 00 04 01 d4 a9 5d | 00 01 a9 67 00 01 a9 80 |.......]|...g....|
|00006140| 00 03 07 00 00 00 00 04 | 01 d9 a9 a0 00 04 aa 29 |........|.......)|
|00006150| 00 14 aa 42 00 04 07 00 | 00 00 00 04 01 f5 aa 6d |...B....|.......m|
|00006160| 00 02 aa a3 00 02 aa a6 | 00 03 07 00 00 00 00 04 |........|........|
|00006170| 01 fc aa aa 00 01 ab 52 | 00 0d ab 73 00 07 07 00 |.......R|...s....|
|00006180| 00 00 00 08 00 29 00 52 | 01 d2 02 15 00 00 01 00 |.....).R|........|
|00006190| 00 00 01 0c 00 00 00 0c | 00 00 00 32 01 29 fc 38 |........|...2.).8|
|000061a0| 21 ca 00 00 00 1c 00 32 | 00 00 57 4e 53 50 00 00 |!......2|..WNSP..|
|000061b0| 00 0a 00 01 ff ff 00 00 | 00 00 01 29 ff b0 00 00 |........|...)....|
|000061c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000061d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000061e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000061f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+